web-dev-qa-db-ja.com

DataGridViewテキストボックス列を複数行に設定する方法は?

DataGridViewTextBoxColumnで「DataGridView」を許可する方法マルチラインプロパティをサポート

42
Wahid Bitar

これを実現するには、WrapModeDefaultCellStyleDataGridViewTextBoxColumntrueに設定する必要があります。

66

テキストセルに複数の行を表示するには、デザイナーでも行う必要があることが2つあることがわかりました。 Tim S. Van Harenのように、WrapModeDefaultCellStyleDataGridViewTextBoxColumntrueに設定する必要があります。そして、それはテキストを折り返しますが、最初の行を超えて何かを表示するために行を拡張しません。 WrapModeに加えて、AutoSizeRowsModeDataGridViewを適切なDataGridViewAutoSizeRowsMode列挙値に設定する必要があります。 DataGridViewAutoSizeRowsMode.AllCellsなどの値を使用すると、セルを垂直方向に拡張し、ラップされたテキスト全体を表示できます。

29
Tom Faust

WrapModeDefaultCellStyleの設定とは別に、次のことができます。

  1. GridViewのEditingControlShowingイベントをキャッチする必要があります
  2. EventArgsのControlプロパティを目的のタイプ(テキストボックス、チェックボックス、ボタンなど)にキャストします
  3. そのキャスト型を使用して、Multilineプロパティを次のように変更します。
private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    TextBox TB = (TextBox)e.Control;
    TB.Multiline = true;            
}
4
usman Majeed
    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;
    }
0
Pavan M