2.觸發設定 FirstDisplayedScrollingRowIndex
3.引發 OnScroll 事件
请问怎样用sendmessage函数向VSCROLL滚动条控件发送滚动的消息?
窗 口 的 自 动 滚 动
透過SendMessage控制功能表項
How To AutoScroll a DataGridView during Drag and Drop
How to detect if a scrollbar is or is not at the end of a richtextbox (vb.net)
========================================================
感覺是因為FirstDisPlayedRowIndex 改變
才引發 Scroll 事件
所以沒辦法單方面改 OnScroll
應該去限制 FirstDisPlayedRowIndex 的最大值
要查看看有沒有辦法
當到達底端,
設定移動變量 = 0
向上移動時,
在設定移動變量 = default
應該可以透過 Reflection 來做
Dim verticalOffset As Reflection.PropertyInfo
verticalOffset = Me.GetType().GetProperty("VerticalScrollingOffset", Reflection.BindingFlags.Public Or Reflection.BindingFlags.Instance)
verticalOffset.SetValue(Me, 0, nothing)
發生
找不到屬性集方法。
'判斷是否索引屬性,若params.length = 0 表示該屬性非索引屬性
'Dim params = verticalOffset.GetIndexParameters
'For Each p As Reflection.ParameterInfo In params
' MsgBox(" Parameter: " & p.Name)
'Next
不知道為什麼 製令製造書的FirstDisPlayedRowIndex 總是呈現的資料比實際變數抓到的大 1
大致上可以限制了
但是畫面還是可以向下推移,
看能不能限制說當到了限制位置後,ScrollBar的向下或向上就失效
感覺跟FirstDisPlayedRowIndex 比較有關係
看能不能透過事件什麼的,限制FirstDisPlayedRowIndex 只能在設定的最大值以下
你怎麼能做出一個項目的DataGridView滾動一次使用鼠標輪?
這邊可以做到,但是變成說要去寫 MouseWheel事件
keyDown事件
還要去寫ScrollBar持續按下向下箭頭控件事件
都要做類似事情,才有可能不再向下
Cell在編輯狀態下 KeyDown 事件
或是要再查查看其他方法
或是透過WinProc來改寫 {UP},{Down}
1.去判斷是否已經到達最大值
2.持續送出{DOWN},將會無視=>不做任何動作
=========================================================================
碰到說DataGridView資料的垂直捲動軸,當往下拉到底,會拉超過GridView顯示的範圍
變成多出空白行
平行的捲動軸就沒有這個問題
目前透過設定FirstDisplayedScrollingRowIndex去找
應該要限制的Maximum
卡在怎麼抓到正確的原始Maximum
再向上移動的時候,去還原原始Maximum
當又遇到FirstDisplayedScrollingRowIndex時候
再去限制Maximum
再想想
===========================================================
Value的范围是从Minimum到Maximum+1-LargeChange,
你可以根据这个来计算Maximum,
因为你不需要Value=Maximum就可以完成你的操作。
碰到說DataGridView資料的垂直捲動軸,當往下拉到底,會拉超過GridView顯示的範圍
變成多出空白行
平行的捲動軸就沒有這個問題
這會造成我在新增資料烈的時候,
因為改變Cell數值造成重新資料鏈結
產生焦點Cell跑掉的問題
看能不能限制垂直捲動軸捲動到最後一筆資料列之後,就無法再向下
(預設可以=>多出空白)
目前透過設定FirstDisplayedScrollingRowIndex去找
應該要限制的Maximum
卡在怎麼抓到正確的原始Maximum
再向上移動的時候,去還原原始Maximum
當又遇到FirstDisplayedScrollingRowIndex時候
再去限制Maximum
再想想
===========================================================
感覺要自訂,去寫出每次變動的量,
然後判斷是不是value到了max
限制value只能到max~0
目前透過row重繪之後,
去判斷最後一筆資料出來了沒
出來了就把焦點限制在最後一筆資料顯示的頁面之上
FirstDisplayedScrollingRowIndex
看能不能之後鎖住Scroll不能再向下拉動只能向上
不然就看能不能委派自訂事件
附加在GridView Scroll事件之下
每次變動,檢查是不是超過max
並且指定只能<=MAX
FirstDisplayedScrollingRowIndex
看能不能之後鎖住Scroll不能再向下拉動只能向上
不然就看能不能委派自訂事件
附加在GridView Scroll事件之下
每次變動,檢查是不是超過max
並且指定只能<=MAX
=======================================================
可以在Gridview的Scroll事件之下
限制e.newValue的數值
去做到控制滾動軸位置的方式(畫面會閃爍)
卡在怎麼抓限制的數值,以及滾動的座標?
可能要計算 Scroll.Max 跟 Gridview.height 之間
@改變max似乎只是改變scrollbar的移動量
並不是絕對位置,而是相對位置
VB.NET DataGridView SCrollBar鎖定
在Scroll事件中如何计算窗口内的row值
Value的范围是从Minimum到Maximum+1-LargeChange,
你可以根据这个来计算Maximum,
因为你不需要Value=Maximum就可以完成你的操作。
沒有留言:
張貼留言