我正在尝试在DataGridView单元格中多行显示文本。我不想使用换行模式,因为文本不是很长。我只想在第一行显示第一个单词,在下一行显示第二个单词,就像这样。注意第二行的粗体文字。
名称:abc
城市:xyz
我尝试使用Environment.newline和“\r\n”来实现,但都不起作用。
private void dgv_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow dgvrow in dgv.Rows)
{
if (dgv.CurrentCell.ColumnIndex == dgv.Columns["Name"].Index)
{
DataGridViewCell dgvcell = (DataGridViewCell)dgvrow.Cells["Name"];
string Name = dgvcell.Value.ToString();
string City = Name.Substring(Name.IndexOf("City:"));
Name = Name.Substring(0, Name.IndexOf("City:")) + Environment.NewLine + City;
dgvcell.Value = Name;
}
}
}
有人能建议如何实现这一点吗?谢了。
您应该可以通过将DataGridViewTextBoxColumn
的DefaultCellStyle
的WrapMode
设置为true,并设置AutoSizerowsMode=DataGridViewAutoSizerowsMode.AllCells
来实现这一点。
这对我很有效:
dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;
试试这个。。您需要将AutoSizeColumnsMode设置为AllCells。
foreach (DataGridViewRow dgvrow in dgv.Rows)
{
if (dgv.CurrentCell.ColumnIndex == dgv.Columns["Name"].Index)
{
DataGridViewCell dgvcell = (DataGridViewCell)dgvrow.Cells["Name"];
string Name = dgvcell.Value.ToString();
string City = Name.Substring(Name.IndexOf("City:"));
Name = Name+"\r\n"+City;
dgvcell.Value = Name;
}
}
这肯定会奏效的