我正在尝试向datagridview
控件添加一些特定的行为(如果可以这样说的话)。
我希望multiplelines
中有textbox
datagridview
控件。我在给出一个太长而不适合textbox
的字符串时实现了这一点,它会自动放在第二行。
所以步骤是将文本输入到单元格中,而焦点位于单元格上按ctrl + enter,以便下一步输入的文本位于第二行。
dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
但我也可以通过按ctrl + enter key
迫使第二行。在这件事情上,我的互联网搜索空了。
我想这会抓住一个小区内的关键新闻事件,但我似乎无法找到这个事件。
我尝试过这个事件,但只有在选择了总共Datagridview
时才会发生。
Private Sub DataGridView1_CellContentClick(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles DataGridView1.KeyPress
' Some magic here.
End Sub
答案 0 :(得分:4)
我相信您可以通过更改DataGridView
中的几个属性并使用“Shift-Enter”而不是“Ctrl-Enter”来获得所需的结果。
在DataGridView
将其AutoSizeRowsMode
设置为AllCells
,然后设置特定的列DefaultCellType
- > WrapMode
为真。然后在编辑单元格时使用“Shift-Enter”,您应该在单元格中获得多行。希望这是你想要的。
答案 1 :(得分:0)
对不起C#语法。但我想这个事件也存在于VB.NET中。
我建议使用KeyDown
事件:
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.Enter)
{
MessageBox.Show("I have been Executed!");
}
}
这可以帮助我在DataGridView
有焦点时捕捉键盘输入。