DataGridViewTextBoxColumn
で「DataGridView
」を許可する方法マルチラインプロパティをサポート?
これを実現するには、WrapMode
のDefaultCellStyle
のDataGridViewTextBoxColumn
をtrue
に設定する必要があります。
テキストセルに複数の行を表示するには、デザイナーでも行う必要があることが2つあることがわかりました。 Tim S. Van Harenのように、WrapMode
のDefaultCellStyle
のDataGridViewTextBoxColumn
をtrue
に設定する必要があります。そして、それはテキストを折り返しますが、最初の行を超えて何かを表示するために行を拡張しません。 WrapMode
に加えて、AutoSizeRowsMode
のDataGridView
を適切なDataGridViewAutoSizeRowsMode
列挙値に設定する必要があります。 DataGridViewAutoSizeRowsMode.AllCells
などの値を使用すると、セルを垂直方向に拡張し、ラップされたテキスト全体を表示できます。
WrapMode
のDefaultCellStyle
の設定とは別に、次のことができます。
EditingControlShowing
イベントをキャッチする必要がありますControl
プロパティを目的のタイプ(テキストボックス、チェックボックス、ボタンなど)にキャストしますMultiline
プロパティを次のように変更します。private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox TB = (TextBox)e.Control;
TB.Multiline = true;
}
int multilineht = 0;
private void CustGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
multilineht = CustGridView.Rows[CustGridView.CurrentCell.RowIndex].Height;
CustGridView.AutoResizeRow(CustGridView.CurrentCell.RowIndex, DataGridViewAutoSizeRowMode.AllCells);
}
private void CustGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
CustGridView.Rows[CustGridView.CurrentCell.RowIndex].Height = multilineht;
}