我一直试图找出如何使用'鼠标右键单击+菜单+选择此列'选择列下的所有单元格...
MSDN没有多大帮助...
当我尝试更改选择模式时出现此错误:
DataGridView control's SelectionMode cannot be set to FullColumnSelect while it has a column with SortMode set to DataGridViewColumnSortMode.Automatic.
谢谢, Y_Y
答案 0 :(得分:9)
很抱歉花了这么长时间 - 我想在我回答之前进行测试,所以我把它放到Visual Studio中进行测试。
我必须在我的网站上这样做才能让它发挥作用:
foreach (DataGridViewColumn c in dataGridView1.Columns)
{
c.SortMode = DataGridViewColumnSortMode.NotSortable;
c.Selected = false;
}
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullColumnSelect;
dataGridView1.Columns[0].Selected = true;
答案 1 :(得分:5)
循环遍历列中的单元格并将其Selected属性设置为true 这听起来很糟糕,但我相信这是选择整个列并保持自动排序的唯一方法。
例如:
grid.ClearSelection();
for(int r = 0; r < grid.RowCount; r++)
grid[columnIndex, r].Selected = true;
答案 2 :(得分:2)
你需要3件事。
最后,您可以选择第一列向用户显示选择模式。 这只需要做一次。第一次加载表单或datagridview时。
// Clear all selected cells or rows in the DGV.
dataGridView1.ClearSelection();
// Make every column not sortable.
for (int i=0; i < dataGridView1.Columns.Count; i++)
dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
// Set selection mode to Column.
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullColumnSelect;
// In case you want the first column selected.
if (dataGridView1.Columns.Count > 0 ) // Check if you have at least one column.
dataGridView1.Columns[0].Selected = true;
答案 3 :(得分:0)
我在使用拖放界面从WPF开始时遇到此错误,而没有进行任何手动编码。查看datagrid的属性将提供一种选择如下项的方法:
但是尝试更改类型为“列标题选择”或“列选择”会导致您提到的错误。
因此,解决方法是通过右键单击网格并转到 Edit Columns 。在这里,所有列及其SortingMode均可更改。将它们全部更改为NotSortable。