2015-10-06 62 views
0

有什麼方法可以測試與控件相關的事件是否由程序觸發,而不是由用戶操作觸發?VB.Net事件:測試發件人是否是另一個子或功能

我有一個滾動條,當用戶移動它時觸發事件。我希望能夠在代碼中的其他地方以編程方式移動滾動條而不發送這些事件。即事件只能在用戶與控件交互時觸發,而不能通過代碼移動控件。

我也有單選按鈕和數字上/下控制我希望能夠做到這一點。

感謝

+0

顯示您的代碼,爲什麼設置時程序化滾動的處理方式與用戶執行時的處理方式不同? – Icepickle

+0

你的問題說明了爲什麼不從代碼中調用事件是個好主意。儘管這個事件和你的代碼可以調用一個通用的滾動處理程序。 – user3697824

+0

代碼是意大利麪條,所以用處不大,但情況非常簡單。它需要的原因是因爲應用程序使用模塊化的表單集合,其中用戶可能在一個表單上執行某些操作,而這些表單需要在另一個表單上反映出來(例如,數字上/下可能會移到用戶計算的結果中做了一個單獨的表格,但用戶需要有能力手動改變上/下而不觸發事件)。謝謝。 – Absinthe

回答

1

也許有更好的方法可以做到這一點,但一個快速的方法是使用時您以編程方式滾動設置一個布爾變量和取消它,當你完成。然後在你的事件中檢查執行邏輯之前。

If IsProgramaticScrolling = False Then 
    ' Do whatever it's supposed to do when your program isn't 
    ' scrolling via code. 
End If 
+0

好主意,謝謝。 – Absinthe