當前位置:
首頁 > 知識 > C超簡單方法實現兩個richtextbox控制項滾動條同步滾動

C超簡單方法實現兩個richtextbox控制項滾動條同步滾動

有時候我們需要實現對照文章等,往往將文本放到兩個richtextbox控制項中,但是,如果我們需要同步滾動查看,來達到更好的觀看效果。

當然,傳統的方法重載控制項或者自定義控制項都可以達到目的,但是對於新手或者想僅僅只用一次這個控制項的人來說,是非常麻煩的。所以,接

下來我來提供一種簡單快捷的方法來實現:richtextbox滾動條同步的功能。

首先,我們在winform窗體創建兩個richtextbox控制項

C超簡單方法實現兩個richtextbox控制項滾動條同步滾動

下面介紹兩個方法,我經常用到

第一個方法,獲得當前滑鼠所在richtextbox控制項中的行號

1 private int GetLineNoVscroll(RichTextBox rtb)
2 {
3 //獲得當前坐標信息
4 Point p = rtb.Location;
5 int crntFirstIndex = rtb.GetCharIndexFromPosition(p);
6 int crntFirstLine = rtb.GetLineFromCharIndex(crntFirstIndex);
7 return crntFirstLine;
8 }

第二個方法,快速轉到richtextbox控制項中某行

1 private void TrunRowsId(int iCodeRowsID, RichTextBox rtb)
2 {
3 try
4 {
5 rtb.SelectionStart = rtb.GetFirstCharIndexFromLine(iCodeRowsID);
6 rtb.SelectionLength = 0;
7 rtb.ScrollToCaret;
8 }
9 catch
10 {
11
12 }
13 }

有了這兩個方法,我們就可以實現滾動條同步的功能了。

思路如下:第一,當richtextbox1滾動時,通過GetLineNoVscroll方法,獲得richtextbox1的滑鼠對應行號。然後

通過TrunRowsId方法,將獲得的richtexbox1的行號定位到richtextbox2中,從而達到richtextbox2跟著richtexbox1

滾動條一起滾動;

在richTextBox1的VScroll事件中添加如下代碼,注意,我這裡有個?,代表某個偏移量,可能因為布局原因(如控制項大小等)

導致兩個richtextbox不同步,一般寫0就可以了,如果差距過大,自行調整數值。

1 private void richTextBox1_VScroll(object sender, EventArgs e)
2 {
3 int crntLastLine= GetLineNoVscroll(richTextBox1, panel1)-?;
4 TrunRowsId(crntLastLine, richTextBox2);
5 }

最後,實現了兩個滾動條同步滾動

C超簡單方法實現兩個richtextbox控制項滾動條同步滾動

如果大家發現有其他問題,請在下方留言。本人剛開博客不久,大家互相學習,共同成長,謝謝

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 達人科技 的精彩文章:

selenium+python環境的搭建的自動化測試
java源碼一帶一路系列之HashMap.compute()
posts-3, comments-0, trackbacks-0
Django項目部署到Apache伺服器

TAG:達人科技 |

您可能感興趣

iOS swift UISearchBar拿到textfield控制項
Web Forms Repeater 控制項
win10系統出現Web瀏覽器阻止activex控制項提示如何解決
Web Forms DataList 控制項
Amazon的Fire電視立方體是一種以alexa控制的娛樂方式
用setuptools_scm來自動控制Python包的版本
「python」colorama 模塊-改變控制台輸出文本的顏色
linux Web控制台
Web Forms Validation 伺服器控制項
為了3D控制項,Facebook就要和Sketchfab合作?
SpringBoot整合Mybatis實現事務控制
Kotlin 條件控制
Cloud Commander:一個有控制台和編輯器的 Web 文件管理器
米家App支持Siri!shortcut控制掃地機器人
Kickstarter砍掉了吸血控制器 Thimbleweed擊中Kic球門
實戰microPython(三)uPyBoard是如何控制機器人的
第三方Windows 10音量控制應用程序EarTrumpet發布
劫持者可以繞過 Active Directory 控制機制
Magic Leap Mobile Companion應用將作為控制器替代輸入方式
微軟Surface Pro 4終於加入Surface Dial屏幕上控制支持