1. 程式人生 > >C# TreeView實現拖動節點時滾動條自動滾動

C# TreeView實現拖動節點時滾動條自動滾動

You need to call the Windows API SendMessage() function.

        //using System.Runtime.InteropServices;

        [DllImport("user32.dll")]

        private static extern int SendMessage(IntPtr hWnd, int wMsg, int wParam, int lParam);
        


        private void treeView1_DragOver(object sender, DragEventArgs e)
        {
            // Set a constant to define the autoscroll region
            const Single scrollRegion = 20;

            // See where the cursor is
            Point pt = treeView1.PointToClient(Cursor.Position);

            // See if we need to scroll up or down
            if ((pt.Y + scrollRegion) > treeView1.Height)
            {
                // Call the API to scroll down
                SendMessage(treeView1.Handle, (int)277, (int)1, 0);
            }
            else if (pt.Y < (treeView1.Top + scrollRegion))
            {
                // Call thje API to scroll up
                SendMessage(treeView1.Handle, (int)277, (int)0, 0);
            }
        }

相關推薦

C# TreeView實現節點滾動自動滾動

You need to call the Windows API SendMessage() function.         //using System.Runtime.InteropServices;         [DllImport("user32.dll"

jQuery實現頁面滾動自動滾動到需要的位置

程式碼如下: <script> $(function(){         $('html,body').animate({scrollTop:1000},'slow'); }) </script> 解讀程式碼:在載入html頁面的body

WPF Treeview禁止水平滾動自動滾動

Wpf的treeview,當item超過treeview的範圍時,當點選這個item,會把這個item移到treeview的最左邊。 不想要這個效果。 需要在treeviewitem的style里加eventsetter <TreeView> <T

vue實現動態新增資料滾動自動滾動到底部

在使用vue實現聊天頁面的時候,聊天資料動態加到頁面中,需要實現滾動條也自動滾動到底部。這時我找到網上有個外掛 vue-chat-scroll 但是安裝後發現是用不了的,報錯資訊如下: VM14383:27 [Vue warn]: Failed

【轉載】讓DIV的滾動自動滾動到最底部的3種方法

轉載自:指令碼之家  → 網路程式設計 → JavaScript → javascript技巧 → 讓DIV的滾動條自動滾動到最底部的3種方法(推薦)http://www.jb51.net/article/93425.htm方法一:使用錨標記要滾動到的位置,然後通過click

讓DIV的滾動自動滾動到最底部

要製作一個線上聊天的程式,在做最後的修飾時,需要對獲得的資訊即時滾動以保證使用者總能看到最新訊息。 聊天程式是基於AJAX設計的,沒有用框架,訊息容器是一個DIV,所以問題就在於如何控制DIV的滾動條。 但同樣的程式碼拿到我這裡卻完全失效,又仔細查了下資料說XHTML標準下scrollTop的值恆為0,解決

qt 畫多邊形(實現鼠標節點

開始 ack set eee del upd tip update lob ---恢復內容開始--- 2018-01-06 這個小例子實現了移動鼠標,鼠標的坐標信息跟隨鼠標移動,多邊形的實現,鼠標點擊可以拖動多邊形點的位置,(其中有個問題?我在QMainWi

c# 實現用滑鼠沒有標題欄的視窗(窗體的任何部分都可實現效果)

上面形式的窗體,實現窗體的任何部分都可實現拖動 首先需要引入非託管程式碼,直接呼叫windows api         public const int WM_NCLBUTTONDOWN = 0xA1;         public const int HT_CAPT

TreeView 滾動節點定位 頁面回發重新整理後,滾動自動定位到被選擇節點出,javascript庫jQuery實現 相容伺服器端控制元件

例程3:(<div>滾動條定位的實現)                    <script type="text/javascript">                         $(function () {                             $("#

DataGrid實現任意列的列頭改變列寬度,讓其他列的寬度和他一樣寬

首先建立列頭的ColumnHeaderStyle: <DataGrid.ColumnHeaderStyle> <Style TargetType="{x:Type DataGridColumnHeader}">

如何重寫PictureBox的OnPaint方法繪製矩形,並實現,滑鼠懸停提示拽方向

使用Graphic繪製可拖動的矩形框(滑鼠懸停可以顯示拖動提示) 首先做繪圖前的準備 新建winform程式,在解決方案上右擊新增使用者控制元件,然後同樣的方法新增元件並繼承於使用者控制元件; 一切準備好後,在Form窗體中將新增的使用者控制元件拖拽到窗體

原生js實現滑塊驗證

cnblogs tcc mvt wms 網站 hnu 按鈕 itl rip 拖動滑塊驗證是現在的網站隨處可見的,各式各樣的拖動法都有。 下面實現的是某寶的拖動滑塊驗證: <!DOCTYPE html> <html lang="en"> <he

RecyclerView借助ItemTouchHelper實現和滑動刪除功能

enable all istview aslist mar -- main erl pub RecyclerView是官方推薦代替ListView的空間,怎樣實現RecyclerView列表元素的拖動呢? 官方提供了ItemTouchHelper類使用過程例如以下

C語言實現單鏈表節點的刪除(帶頭結點)

data art pos grand urn ria tps move sni 我在之前一篇博客《C語言實現單鏈表節點的刪除(不帶頭結點)》中具體實現了怎樣在一個不帶頭結點的單鏈表的刪除一個節點,在這一篇博客中我改成了帶頭結點的單鏈表。代碼演示樣例上傳至 h

sql查詢報表字段較長麻煩只需要雙擊中間的分隔線即可全部查看了

sqlserversql查詢報表時字段較長拖動麻煩時只需要雙擊中間的分隔線即可全部查看了本文出自 “宏宏在線” 博客,請務必保留此出處http://215363.blog.51cto.com/205363/1956128sql查詢報表時字段較長拖動麻煩時只需要雙擊中間的分隔線即可全部查看了

*C#(WPF)--矩陣和矩陣動畫(展開,不足動畫效果)

stop 項目 鼠標 ani sys unlock 控件移動 top art 最近在研發新的項目,遇到了一個桌面模式下的難點--展開動畫。之前動畫這方面沒做過,也許很多人開始做的時候也會遇到相關問題,因此我把幾個重點及實際效果圖總結展示出來: 我的開發環境是在

vue實現div元素

() left pan down htm 元素 null col color html: <div id="app1"> <div v-drag class="drag"></div> <div v-drag

jquery 實現文件上傳加進度

進行 con pos rip file round 默認 dex toupper 通過對文件的拖動實現文件的上傳,主要用到的是HTML5的ondrop事件,上傳內容通道FormData傳輸: //進度條 <div class="parent-dlg" >

[C#]RichTextBox實現

拖放 spa () nta lena space windows hand lose amespace WindowsFormsApplication1 { public partial class Form1 : Form { publi

vue+mousemove實現,鼠標移動過快就失效

拖動 win text cli prev point element lis 問題 今天用vue+原生js的mousemove事件,寫了個拖動,發現只能慢慢拖動才行,鼠標只要移動快了,就失效,不能拖動了; 搞了半天在,總算解決了,但是問題的深層原理還沒搞清楚,知道的大俠可以