2009-10-13 12 views

Odpowiedz

60

Powinieneś być w stanie to osiągnąć poprzez ustawienie WrapMode z DefaultCellStyle twojego DataGridViewTextBoxColumn do true.

+14

należy również ustawić 'dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;' zobacz [ten wpis] (http://stackoverflow.com/questions/1706454/c-multiline-text-in-datagridview-control) – BornToCode

+0

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

3

Oprócz ustawiania WrapMode z DefaultCellStyle, można wykonać następujące czynności:

  1. trzeba złapać GridView EditingControlShowing Event
  2. Obsada Control nieruchomości na EventArgs do typu, który chcesz (czyli pole tekstowe, pole wyboru lub przycisk)
  3. 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;    
} 
26

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.

+4

Dla odniesienia, 'AutoSizeRowsMode' jest właściwością' DataGridView', i musi być ustawiony na coś jak 'DataGridViewAutoSizeRowsMode.AllCells' –

+0

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ć. –

Powiązane problemy