• <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            //兩個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            //分析子串有幾個回車換行符
             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                //分析子串有幾個回車換行符
             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                //分析子串有幾個回車換行符
            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 天書 閱讀(2180) 評論(1)  編輯 收藏 引用

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

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



            <2013年6月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            常用鏈接

            留言簿(5)

            隨筆檔案

            文章分類

            文章檔案

            好友的Bolg

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久毛片一区二区| 精品无码久久久久久国产| 国内精品欧美久久精品| 久久精品国产亚洲一区二区| 国产精品九九九久久九九| 99久久超碰中文字幕伊人 | 亚洲av日韩精品久久久久久a| 亚洲欧美一级久久精品| 日产精品99久久久久久| 大蕉久久伊人中文字幕| 中文字幕热久久久久久久| 精品久久8x国产免费观看| 国产精品18久久久久久vr| 久久伊人亚洲AV无码网站| 国产99精品久久| 久久久久这里只有精品| 亚洲中文久久精品无码ww16| 久久国产成人精品麻豆| 久久久这里只有精品加勒比| 久久午夜羞羞影院免费观看| 精品无码人妻久久久久久| 99久久无色码中文字幕人妻| 一本久久久久久久| 蜜臀久久99精品久久久久久小说| 久久久精品人妻一区二区三区蜜桃| 久久丝袜精品中文字幕| 久久天天躁狠狠躁夜夜躁2014| 久久久久久久亚洲精品| 久久免费线看线看| 亚洲国产精品18久久久久久| 国产福利电影一区二区三区久久久久成人精品综合 | 人妻无码αv中文字幕久久琪琪布| 精品久久香蕉国产线看观看亚洲| 亚洲国产高清精品线久久 | 久久偷看各类wc女厕嘘嘘| 久久人搡人人玩人妻精品首页| AAA级久久久精品无码片| 亚洲综合伊人久久大杳蕉| 亚洲国产小视频精品久久久三级 | 国产成人无码精品久久久免费 | 97精品国产97久久久久久免费|