当ctrl +输入按下时,Datagridview多行文本框

时间:2017-02-22 15:10:55

标签: vb.net winforms datagridview multiline

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

我希望multiplelines中有textbox datagridview控件。我在给出一个太长而不适合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

2 个答案:

答案 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有焦点时捕捉键盘输入。