I'm trying to add some specific behavior to a datagridview
control (if you can put it like that).
I would like to have a multiplelines
textbox
control in the datagridview
. I achieved this when giving a string that is too long to fit in the textbox
, it's automatic placed on a second line.
So the steps would be enter text into a cell, while the focus is on the cell press ctrl+enter so that the text entered next is on a second line.
dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
But I would also be able to force a second line by pressing ctrl + enter key
On this matter my internet search came up empty.
I guess it would be catching the key press event within a cell but I can't seem to find this event.
I tried this event, but it only happens when the Datagridview
in total is selected.
Private Sub DataGridView1_CellContentClick(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles DataGridView1.KeyPress
' Some magic here.
End Sub
Sorry for the C# syntax. But I guess the event exists also in VB.NET.
I would suggest to use the
KeyDown
event:this works for me catching keyboard input when the
DataGridView
has focus.I am fairly confident you can achieve the desired results by changing a couple of properties in the
DataGridView
and use a “Shift-Enter” instead of “Ctrl-Enter”.In the
DataGridView
set itsAutoSizeRowsMode
toAllCells
, then set the particular COLUMNSDefaultCellType
->WrapMode
to true. Then use a “Shift-Enter” while editing a cell and you should get multiple lines in a cell. Hope this is what you were looking for.