注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。
こちらで紹介したように、セルスタイル(DataGridViewCellStyleオブジェクト)のDataGridViewCellStyle.WrapModeプロパティをDataGridViewTriState.Trueにすることで、改行文字を含む複数行テキストの表示と、入力が可能になります。
WrapModeプロパティがTrueの時にセルの編集で改行を行うには、Shiftキーを押しながらEnterキーを押します。
'セルの内容に合わせて、行の高さが自動的に調節されるようにする DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells '"Column1"列のセルのテキストを折り返して表示する DataGridView1.Columns("Column1").DefaultCellStyle.WrapMode = _ DataGridViewTriState.True
//セルの内容に合わせて、行の高さが自動的に調節されるようにする DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; //"Column1"列のセルのテキストを折り返して表示する DataGridView1.Columns["Column1"].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
複数行テキストの入力時に垂直スクロールバーを表示するには、こちらで紹介している方法でテキストボックスのScrollBarsプロパティを変更します。ただし、このままではスクロールバーがおかしな位置に表示されてしまうことがあります。そのような場合は、こちらで紹介したように、セルスタイルのAlignmentプロパティをTopLeftにして、セルの内容が左上に表示されるようにすればよいでしょう。
'EditingControlShowingイベントハンドラ Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, _ ByVal e As DataGridViewEditingControlShowingEventArgs) _ Handles DataGridView1.EditingControlShowing '表示されているコントロールがDataGridViewTextBoxEditingControlか調べる If TypeOf e.Control Is DataGridViewTextBoxEditingControl Then Dim dgv As DataGridView = CType(sender, DataGridView) '編集のために表示されているコントロールを取得 Dim tb As DataGridViewTextBoxEditingControl = _ CType(e.Control, DataGridViewTextBoxEditingControl) '垂直バーを表示する tb.ScrollBars = ScrollBars.Vertical End If End Sub
//EditingControlShowingイベントハンドラ private void DataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { //表示されているコントロールがDataGridViewTextBoxEditingControlか調べる if (e.Control is DataGridViewTextBoxEditingControl) { DataGridView dgv = (DataGridView)sender; //編集のために表示されているコントロールを取得 DataGridViewTextBoxEditingControl tb = (DataGridViewTextBoxEditingControl)e.Control; //垂直バーを表示する tb.ScrollBars = ScrollBars.Vertical; } }