2014-05-10 38 views
5

我有一个虚拟模式的DataGridView的Winform应用程序,一切都很好!唯一的问题是,当我点击双击列分隔符时,控件正在尝试将列宽适合所有单元格,而不仅仅是显示或可见!显然,这会挂断应用程序。DataGridView虚拟模式列分隔线双击自动大小

我必须尝试所有类型的数据网格和每列配置

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

一切!设置!并没有什么作品

任何想法?

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

回答

6

您应该处理ColumnDividerDoubleClick这样:

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