Jak zezwolić na "DataGridViewTextBoxColumn
" w obsługuje właściwość Multiline?Jak ustawić kolumnę pola tekstowego DataGridView na wieloliniowy?
Odpowiedz
Powinieneś być w stanie to osiągnąć poprzez ustawienie WrapMode
z DefaultCellStyle
twojego DataGridViewTextBoxColumn
do true
.
Oprócz ustawiania WrapMode
z DefaultCellStyle
, można wykonać następujące czynności:
- trzeba złapać GridView
EditingControlShowing
Event - Obsada
Control
nieruchomości na EventArgs do typu, który chcesz (czyli pole tekstowe, pole wyboru lub przycisk) - Używanie tego typu lanego, zmienić właściwość
Multiline
jak poniżej:
private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox TB = (TextBox)e.Control;
TB.Multiline = true;
}
Zauważyłem, że są dwie rzeczy, które musisz zrobić, zarówno w projektancie, aby stworzyć komórkę tekstową wyświetlającą wiele linii. Jak wspomniano pod nr Tim S. Van Haren, należy ustawić WrapMode
z DefaultCellStyle
swojego DataGridViewTextBoxColumn
na DataGridViewTextBoxColumn
na na . I chociaż powoduje to zawijanie tekstu, nie powoduje on rozwinięcia wiersza, aby pokazać cokolwiek poza pierwszą linią. Oprócz WrapMode
, AutoSizeRowsMode
z DataGridView
musi być ustawiony na odpowiednią wartość wyliczenia DataGridViewAutoSizeRowsMode
. Wartość taka jak DataGridViewAutoSizeRowsMode.AllCells
umożliwia rozwijanie się komórki w pionie i wyświetlanie całego owiniętego tekstu.
Dla odniesienia, 'AutoSizeRowsMode' jest właściwością' DataGridView', i musi być ustawiony na coś jak 'DataGridViewAutoSizeRowsMode.AllCells' –
Jak @BenScott stwierdził, [' DataGridView.AutoSizeRowsMode'] (http: // msdn. microsoft.com/en-us/library/system.windows.forms.datagridview.autosizerowsmode%28v=vs.110%29.aspx) nie jest wartością boolowską i musi zostać przypisana odpowiednia wartość wyliczeniowa "DataGridViewAutoSizeRowsMode". Będę edytować odpowiedź, aby to odzwierciedlić. –
należy również ustawić 'dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;' zobacz [ten wpis] (http://stackoverflow.com/questions/1706454/c-multiline-text-in-datagridview-control) – BornToCode
Pamiętaj jeśli użyjesz niestandardowych stylów komórki w tabeli, musisz określić WrapMode dla każdego, który chcesz zawijać, ponieważ nowe style domyślnie ustawiają na false. – kjhf