我有一个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