我想封裝一個控制元件繼承datagridview,但是datagridview在tab鍵獲得焦點的時候,會自動把焦點設定到第一行資料上。我想屏蔽這個動作,tab鍵進入自定義控制元件以后不將焦點設定到第一行,應該如何實作?謝謝
uj5u.com熱心網友回復:
GotFocus事件中設定第一行的Selected為false。uj5u.com熱心網友回復:
謝謝版主回復,GotFocus中設定的話,如果表單當前焦點在DataGridView,用戶alt+tab切換到別的程式,再切換回來的時候會觸發GotFocus事件,這樣會把用戶之前選擇的行清除掉。
另外GotFocus事件在用戶點擊Datagridview也會觸發
uj5u.com熱心網友回復:
記錄用戶之前選的行的index,再次進入gotfocus時判斷index是否等于0,不等于0 不進行selected=false的設定。或者考慮直接將tabindex設定為-1,不接受tab鍵事件。
uj5u.com熱心網友回復:
進入GotFocus事件中的時候,選擇行其實已經自動被放到了第一行上面,所以判斷選擇行這時候就是第一行,無法區分是用戶選擇的第一行還是自動放置在第一行。
tabstop設為False的話,用戶就沒法單純用鍵盤操作了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/110473.html
標籤:VB.NET
