我有一個Windows窗體VS2010 .NET 4項目,標準DataGridView綁定到窗體上的數據源。DataGridView編輯WinForms上的單元格
網格有一個文本列,我想成爲一個點,並在點擊的字符上進行編輯。 當你點擊你想調整的角色時,就像普通的文本框/編輯器一樣。如果可能的話,我還想使用UP/DOWN鍵在行之間移動,但希望光標移動到同一列中的相同字符位置,而不選擇整個文本。
我已經嘗試了幾件事情:
DataGridView1.ClearSelection()
DataGridView1.BeginEdit(假)
的BeginEdit只是把光標停留在文本的末尾,這意味着另一點擊指向字符位置進行編輯。
我知道一個類似DevExpress的商業網格默認爲編輯,只需點擊一下鼠標就可以點擊正確的字符位置,但顯然需要花錢。
我試圖在DataGridView1_EditingControlShowing事件
If TypeOf e.Control Is System.Windows.Forms.DataGridViewTextBoxEditingControl Then
Dim tb As TextBox = e.Control
tb.SelectionStart = 5
tb.SelectionLength = 5
End If
但這沒什麼。
我只是想刪除兩個或三個點擊以獲得需要調整的角色位置。
我還沒有看過自定義數據列。
任何建議將不勝感激。
出色答卷做的主要工作位,我一直在爲這個搜索了好半天。它不會完成上行,但我可能會修改它。關於獲取前一個單元格的任何想法。 – 2012-03-11 12:28:42
我只是通過將編輯控件(來自編輯控件顯示)放置在表單級別的專用變量中,然後在編輯控件離開事件期間將SelectionStart值放置在表單級別的int變量中,從而非常迅速地對此進行了驗證。然後,一旦在網格外面,我檢查了整數,它有最後一個編輯控制位置。只花了我一分鐘的時間來測試,這樣你就可以很容易地將類似的東西放入該示例的子類dgv中。 – 2012-03-11 12:41:39
謝謝大衛,我有插入位置,但是當使用上/下箭頭時,它不會進入下一行的編輯模式,我不知道如何設置編輯,然後重新定位插入符號。我嘗試將EditMode設置爲EditOnEnter,但這樣可以防止鼠標單擊編輯。對不起,這是一個新手... – 2012-03-11 14:23:01