ctrl + enter 按下时Datagridview多行文本框

Datagridview multi line textbox when ctrl+enter press

我正在尝试向 datagridview 控件添加一些特定行为(如果您可以这样说的话)。

我想在 datagridview 中有一个 multiplelines textbox 控件。当我给出一个太长而无法放入 textbox 的字符串时,我实现了这一点,它会自动放在第二行。

所以步骤是在单元格中输入文本,当焦点在单元格上时按 ctrl+enter,这样接下来输入的文本就会出现在第二行。

dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells

但我也可以通过按 ctrl + enter key 强制第二行。关于这件事,我的互联网搜索结果是空的。

我猜它会在一个单元格中捕捉按键事件,但我似乎找不到这个事件。

Possible events

我试过这个事件,但只有当总共选择 Datagridview 时才会发生。

Private Sub DataGridView1_CellContentClick(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles DataGridView1.KeyPress
     ' Some magic here.
End Sub

抱歉 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 有焦点时捕捉键盘输入有用。

我非常有信心您可以通过更改 DataGridView 中的几个属性并使用“Shift-Enter”而不是“Ctrl-Enter”来实现预期的结果。

DataGridView 中将其 AutoSizeRowsMode 设置为 AllCells,然后将特定的 COLUMNS DefaultCellStyle -> WrapMode 设置为 true。然后在编辑单元格时使用“Shift-Enter”,你应该在一个单元格中得到多行。希望这就是您要找的。