• <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 天書 閱讀(2182) 評論(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   管理



            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(5)

            隨筆檔案

            文章分類

            文章檔案

            好友的Bolg

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            少妇人妻88久久中文字幕| 成人资源影音先锋久久资源网| 精品久久久无码中文字幕| 亚洲国产日韩欧美综合久久| 久久综合狠狠综合久久| 曰曰摸天天摸人人看久久久| 噜噜噜色噜噜噜久久| 99久久婷婷免费国产综合精品| 国产精品无码久久四虎| 久久久无码人妻精品无码| 精品久久久久一区二区三区| 国产Av激情久久无码天堂| 亚洲国产精品成人久久蜜臀 | 久久亚洲精品人成综合网| 国内精品伊人久久久久影院对白| 思思久久精品在热线热| 九九热久久免费视频| AV无码久久久久不卡网站下载| 人人妻久久人人澡人人爽人人精品| 久久99中文字幕久久| 漂亮人妻被黑人久久精品| 无码任你躁久久久久久老妇App| 久久久综合九色合综国产| 97久久天天综合色天天综合色hd | 91精品国产91久久综合| 久久精品aⅴ无码中文字字幕不卡| 99久久伊人精品综合观看| 精品久久久久久国产| 97久久天天综合色天天综合色hd| 人妻无码中文久久久久专区| 亚洲精品乱码久久久久久久久久久久 | 亚洲欧美精品一区久久中文字幕 | 久久精品国产精品亚洲毛片| 伊人久久大香线焦AV综合影院| 国产精品成人久久久| 色悠久久久久久久综合网| 欧美久久亚洲精品| 久久精品人妻中文系列| 亚洲va久久久噜噜噜久久狠狠 | 久久久久女人精品毛片| 国产精品18久久久久久vr|