我的WinForm中有DataGridView。我将AutoSizeColumnsMode
设置为Fill
,因为如果用户调整窗口大小,则不需要空格。
我想要实现的目标。例如,用户在特定单元格中键入一些文本。当文本宽度变为单元格宽度时,文本必须换行。
可能是这样:
|Cell Header|
-------------
|text-text |
和
|Cell Header|
-------------
|text-text |
|more text |
|on the new |
|line |
我的列可以按用户调整大小。所以这个:
|Cell Header|
-------------
|text-text |
|more text |
|on the new |
|line |
可能会这样:
|Cell Header |
---------------------
|text-text more text|
|on the new line |
我从其他方法得到的答案:
AutoResizeRowsMode
设置为AllCells
-没有帮助DefaultCellStyle.WrapMode
设置为True
-对您没有帮助我该如何实现呢?
编辑:列设置:
编辑#2:
答案 0 :(得分:2)
设置RowsDefaultCellStyle.Wrapmode = true
而不是DefaultCellStyle.WrapMode = true
我为两个网格都使用了默认设置。这是我的设置:
这是代码
答案 1 :(得分:1)
除了为列设置换行模式和自动调整大小模式外,还需要为行设置调整大小模式。
public class Model
{
public int Id { get; set; }
public string Text { get; set; }
}
private void Form1_Load(object sender, EventArgs e)
{
var list = new List<Model>
{
new Model{Id = 1, Text = "Lorem ipsum" },
new Model{Id = 2, Text = "Lorem ipsum dolor sit amet." },
new Model{Id = 3, Text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." },
};
dataGridView1.DataSource = list;
dataGridView1.Columns["Text"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns["Text"].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
}