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

Fra*_*aga 5 c# datagridview virtualmode autosize winforms

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

我尝试了各种配置

AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;
AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
Run Code Online (Sandbox Code Playgroud)

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

任何的想法?

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

dE *_*DER 6

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

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