• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 124,  comments - 29,  trackbacks - 0
              1using System;
              2using System.Collections.Generic;
              3using System.ComponentModel;
              4using System.Data;
              5using System.Drawing;
              6using System.Text;
              7using System.Windows.Forms;
              8
              9namespace VSGround
             10{
             11    public partial class Form1 : Form
             12    {
             13        public Form1()
             14        {
             15            InitializeComponent();
             16        }

             17
             18        private void Form1_Load(object sender, EventArgs e)
             19        {
             20            txtInput.Focus();
             21            //txt2.TabIndex = 0;
             22        }

             23        private int GetRNCount(String str)
             24        {
             25            int RNnum = 0;
             26            for(int i = 0; i<str.Length; i++)
             27            {
             28                if (str[i] == '\r')
             29                {
             30                    RNnum++;
             31                }

             32            }

             33            return RNnum;
             34        }

             35        //根據(jù)行號確定光標(biāo)索引
             36        private int GetCurIndex(int curRow)
             37        {
             38            int curIndex = 0;
             39            if (curRow < 10)
             40            {
             41                curIndex = 3 * (curRow - 1);
             42            }

             43            else if (curRow < 100)
             44            {
             45                curIndex = (10 - 1* 3  + (curRow - 10* 4;
             46            }

             47            else if (curRow < 1000)
             48            {
             49                curIndex = (10 - 1* 3  + (100-1* 4 + (curRow - 100)*5;
             50            }

             51            else if (curRow < 10000)
             52            {
             53                curIndex = (10 - 1* 3 + (100 - 1* 4 + (1000 - 1* 5 + (curRow - 1000* 6;
             54            }

             55            else
             56            {
             57                curIndex = (10 - 1* 3 + (100 - 1* 4 + (1000 - 1* 5 + (10000 - 1* 6 + (curRow - 10000* 7;
             58            }

             59            return curIndex;
             60        }

             61        private void txtInput_TextChanged(object sender, EventArgs e)
             62        {
             63            txtLeft.Clear();
             64            //兩個(gè)textbox中的滾動條保持同步
             65            txtInput.ScrollToCaret();
             66
             67            //定位總行號
             68            String str = txtInput.Text;
             69            if (str != null && str.Length > 0)
             70            {
             71                int countRN = GetRNCount(str);
             72                for(int j = 0; j < countRN+1; j++)
             73                {
             74                    txtLeft.Text += (j + 1).ToString();
             75                    txtLeft.Text += "\r\n";
             76                }

             77                txtLeft.Text = txtLeft.Text.Substring(0, txtLeft.Text.Length - 2);
             78
             79            }

             80            //定位光標(biāo)所在行號取其前面的子串
             81            int careIndex = txtInput.SelectionStart;
             82            String careFrontStr = txtInput.Text.Substring(0, careIndex);
             83            //分析子串有幾個(gè)回車換行符
             84            int countSubRN = GetRNCount(careFrontStr);
             85            int CurRow = countSubRN + 1;
             86            txtLeft.SelectionStart = GetCurIndex(CurRow);
             87            txtLeft.ScrollToCaret();
             88        }

             89
             90        private void txtInput_KeyDown(object sender, KeyEventArgs e)
             91        {
             92            txtInput.ScrollToCaret();
             93            if(e.KeyCode == Keys.Up)
             94            {
             95                //定位光標(biāo)所在行號取其前面的子串
             96                int careIndex = txtInput.SelectionStart;
             97                String careFrontStr = txtInput.Text.Substring(0, careIndex);
             98                //分析子串有幾個(gè)回車換行符
             99                int countSubRN = GetRNCount(careFrontStr);
            100                int CurRow = countSubRN ;
            101                if(CurRow != 0)
            102                {
            103                    txtLeft.SelectionStart = GetCurIndex(CurRow);
            104                }

            105                else
            106                {
            107                    txtLeft.SelectionStart = GetCurIndex(CurRow+1);
            108                }

            109              
            110                txtLeft.ScrollToCaret();
            111            }

            112            else if(e.KeyCode == Keys.Down)
            113            {
            114                                //定位光標(biāo)所在行號取其前面的子串
            115                int careIndex = txtInput.SelectionStart;
            116                String careFrontStr = txtInput.Text.Substring(0, careIndex);
            117                //分析子串有幾個(gè)回車換行符
            118                int countSubRN = GetRNCount(careFrontStr);
            119                int CurRow = countSubRN ;
            120                txtLeft.SelectionStart = GetCurIndex(CurRow + 2);
            121                txtLeft.ScrollToCaret();
            122            }

            123        }

            124    }

            125}

             1using System;
             2using System.Collections.Generic;
             3using System.Windows.Forms;
             4using System.Text;
             5
             6namespace VSGround
             7{
             8    class MyTextBox:System.Windows.Forms.TextBox
             9    {
            10        public MyTextBox():base()
            11        {
            12
            13        }

            14        protected override bool IsInputKey(System.Windows.Forms.Keys KeyData)
            15        {
            16            if (KeyData == System.Windows.Forms.Keys.Up ||
            17                KeyData == System.Windows.Forms.Keys.Down)
            18            return true;
            19        return base.IsInputKey(KeyData);
            20        }

            21    }

            22}
            posted on 2008-09-12 16:52 天書 閱讀(2175) 評論(1)  編輯 收藏 引用

            FeedBack:
            # re: c# 兩個(gè)TextBox 同步滾動 實(shí)現(xiàn)行號功能
            2013-06-17 10:31 | 請輸入你的姓名
            提交失敗后,可以通過“恢復(fù)上次提交”恢復(fù)剛剛提交的內(nèi)容  回復(fù)  更多評論
              

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理



            <2010年6月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            常用鏈接

            留言簿(5)

            隨筆檔案

            文章分類

            文章檔案

            好友的Bolg

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久青青草原综合伊人| 久久电影网一区| 久久av免费天堂小草播放| 亚洲欧美日韩中文久久| 人人狠狠综合88综合久久| 狠狠人妻久久久久久综合蜜桃| 精品久久久久久久| 香蕉久久一区二区不卡无毒影院| 亚洲伊人久久大香线蕉综合图片| 亚洲欧洲中文日韩久久AV乱码| 欧美日韩精品久久久免费观看| 久久人人超碰精品CAOPOREN| 精品国产婷婷久久久| 久久亚洲国产成人影院网站| 色婷婷久久久SWAG精品| 久久99热这里只频精品6| 国内精品九九久久精品| 久久久久高潮毛片免费全部播放| 色综合久久久久无码专区| 国产综合久久久久久鬼色| 狠色狠色狠狠色综合久久| 狠狠人妻久久久久久综合蜜桃| 久久久99精品一区二区| 性做久久久久久久久浪潮| 亚洲国产欧洲综合997久久| 国产69精品久久久久777| 久久久久国产亚洲AV麻豆| 久久国产精品无| 久久99精品久久只有精品| 91久久精品无码一区二区毛片| 国内精品伊人久久久久网站| 热久久视久久精品18| 国产精品一区二区久久| 久久综合一区二区无码| 性欧美大战久久久久久久久| 久久噜噜电影你懂的| 香蕉久久夜色精品国产2020| 91久久精一区二区三区大全| 日韩十八禁一区二区久久| 国产精品免费看久久久| 亚洲一级Av无码毛片久久精品|