|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2016-10-15, 08:33 PM | #1 |
管理版主
|
教學 - VB .Net TextBox物件重拾 捲軸事件
由於 MS為了推廣 RichTextBox物件
將 TextBox物件 .VScroll 及 .HScroll 可控制事件取消了 但 想利用捲軸事件寫功能時 就只能放棄TextBox物件嗎 (使用資源較龐大的RichTextBox物件)? 這裡提供一個最簡單的方法 (WWW上的都蠻麻煩的) 以下範例實踐兩個 TextBox物件(TextBox1 及 TextBox2) 「同步捲動」 先加一段程式碼 PHP 語法:
PHP 語法:
使用攔截視窗訊息方式 如果核對符合 垂直捲軸事件 就同時發送訊息給另一個 TextBox同樣的動作 Protected Overrides Sub WndProc 是指覆寫 視窗訊息 處理 (插入自己的處理功能) m.Msg 是訊息種類,如果是 WM_COMMAND 表示為使用者訊息 接著要分析 .LParam及.WParam參數 規定上就是:.WParam的前16個位元數值 如果是 EN_VSCROLL 表示是 垂直捲軸事件 .WParam有32位元長度往右移16位元就能與EN_VSCROLL比對是否相等,寫成: If (CInt(m.WParam) >> 16) = EN_VSCROLL Then 符合動作條件接著就是用兩個Win API指令來實作 GetScrollPos 及 PostMessage 前面是取得捲軸的數值 後面是將此數值發送給另一個(想要同步)的TextBox 以達到「同步捲動」 至於這些參數為何如此填,其實滿死板的,也不難理解 因此不多作解說 P.S.至於為何用 PostMessage而不用SendMessage 是因為確保訊息一定會給 接收物件給接收 以上~如有疑惑歡迎提問 此帖於 2016-10-15 08:45 PM 被 mini 編輯. |
送花文章: 2012,
|
|
|
相似的主題 | ||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
教學 - [VB.Net] 以命令列指令方式修改檔案屬性(針對指定資料夾變成唯讀) | mini | 程式語言討論區 | 2 | 2016-10-08 03:19 PM |
目前學vb 比較好還是 vb.net | moto24 | 一般電腦疑難討論區 | 3 | 2003-08-07 05:48 PM |
誰有VB.NET??? | liu885 | 一般電腦疑難討論區 | 0 | 2003-06-07 11:52 PM |
有誰會用vb.net撰寫一個三維陣列的成績單 | wenfu | 一般電腦疑難討論區 | 0 | 2003-04-14 12:17 AM |