2017-02-22 38 views
1

datagridviewコントロールにいくつかの特定の動作を追加しようとしています。Ctrl + Enterを押したときにDatagridviewの複数行のテキストボックス

私は textboxのコントロールをdatagridviewに持っています。 textboxに収まるには長すぎる文字列を与えるときにこれを実現しました。自動的に2行目に配置されます。

ステップは、セルにフォーカスを置いている間にテキストを入力します。次に入力したテキストが2行目になるように、ctrl + enterキーを押します。

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

しかし、私はまた、この問題についてctrl + enter keyを押すことにより、第2のラインを強制することができるだろうが、私のインターネット検索は、空を思いつきました。

私はそれがセル内のキープレスイベントをキャッチしていると思いますが、私はこのイベントを見つけることができません。

Possible events

私はこのイベントを試してみましたが、合計でDatagridviewが選択されている場合にのみ発生します。

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

"Shift-Enter"を試しましたか? – JohnG

答えて

4

DataGridViewの2つのプロパティを変更し、「Ctrl-Enter」の代わりに「Shift-Enter」を使用することで、望ましい結果が得られると確信しています。 trueに>WrapModeからDataGridView

は、特定のCOLUMNSをDefaultCellTypeを設定し、その後、AllCellsへのAutoSizeRowsModeを設定します。次に、セルを編集中に "Shift-Enter"を使用すると、セル内に複数の行が表示されます。これがあなたが探していたものだと願っています。

+0

こんにちは、答えをありがとう。 shift-enterが発生したときに行のサイズを直接変更する方法はありますか? –

+0

'DataGridView'' AutoSizeRowsMo​​de'が' AllCells'または 'DisplayedCells'に設定されている場合、編集されたセルをクリックすると直ちに編集された行のサイズをテキストに合わせて変更する必要があります。私はこれをあなたが意味するものと推測しています。残念ながら、 'AutoSizeRowsMo​​de'が' AllCells'に設定されていると、ユーザは編集前に行のサイズを変更することができなくなります。 – JohnG

+0

これは私が意味することですが、クリックする前に行のサイズを変更することはできません。 –

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にフォーカスがあるとき、キーボード入力を引く私のために動作します。

+0

こんにちは、私は私の質問を更新したので明確ではないかもしれません。私はctrl + enterを押してセルに入力しながら改行を追加したい。私のテキストのどの部分が、セルにどのようにフィットするかだけでなく、新しい行にあるかどうかを選択することができます。 –

関連する問題