DataGridView虚拟模式列分隔符双击自动调整大小

时间:2014-05-10 17:26:24

标签: c# winforms datagridview autosize virtualmode

我在虚拟模式下使用DataGridView进行winform应用,一切都运行良好!唯一的问题是当我点击双击一个列分隔符时,控件正试图使列宽适合所有单元格,而不仅仅是显示的或可见的!显然,这会挂起应用程序。

我尝试了各种配置

AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;
AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;

Everything !, datagrid和每一栏中的设置!并没有任何作用

有什么想法吗?

最终结果是:用户可以调整列的大小,但不能通过双击en de column border!..我不在乎它是否完全不适合。

1 个答案:

答案 0 :(得分:6)

您应该以这种方式处理ColumnDividerDoubleClick:

private void datagridview_ColumnDividerDoubleClick(object sender, DataGridViewColumnDividerDoubleClickEventArgs e)
{
  if (e.Button == MouseButtons.Left)
  {
    datagridview.AutoResizeColumn(e.ColumnIndex, DataGridViewAutoSizeColumnMode.DisplayedCells);
  }
  e.Handled = true;
}