2011-10-06 37 views
0

DataGridView设置为全行选择。 需要一种方法DataGridView默认行/单元格选择问题

我也使用SelectionChanged事件 这DGV有4列

,如果我离开默认的行选择以清除的DataGridView的默认性质所做的默认选择行多数民众赞成,的SelectionChanged火灾4倍当它的装载我不希望它开火。

我已经尝试使用RowsPostPaint事件清除选择并不会触发SelectionChanged事件,但我无法选择任何行后。

任何想法? 谢谢

+0

目前我的工作是在下面,但有没有更好的方法? 我存储int p = 0 然后我运行,如果p!= 3;的p ++; ClearSelection 一旦值达到3,它继续SelectionChanged方法 – Tsukasa

回答

0

要取消选择初始行选择,您可以枚举SelectedRows并将Selected属性设置为false。为防止在选择初始行时触发SelectionChanged事件,请在取消选择后手动添加事件。

例如,在窗体的Load事件:

 datagridview.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(datagridview_DataBindingComplete); 

和听众:

private void datagridview_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) 
    { 
     datagridview.ClearSelection(); 
    } 

foreach(DataGridViewRow row in dataGridView1.SelectedRows) 
    row.Selected = false; 

dataGridView1.SelectionChanged += dataGridView1_SelectionChanged; 
+0

一直试图以某种方式实现上述,但有问题。 这里是应用程序的运行: ListView,具有多个选项卡的TabControl。 在几个选项卡中包含DataGridViews。 从ListView中选择项目填充选项卡/ DataGridView的所有数据 从ListView中选择项目时,它将选项卡索引重置为0,该选项卡不包含dgv。 当填充数据时,我需要清除默认选中的行,因为我使用的是SelectedChanged,所以始终是第一个填充的行。 – Tsukasa

+0

在ListView中选择一个新项目并清除dgv,以再次触发SelectedChanged事件的新数据 并且需要在再次击中事件之前将其清除。 希望我解释这一点以及我可以 – Tsukasa

0

使用形式加载这个

不e任何时候改变默认选择隐藏的数据源。

+0

此外,DataBindingComplete不只是在数据绑定完成时运行,而且只要绑定了*单元格*。所以如果你想做比选择清理更重要的事情,那么这件事情如果没有比无用的更糟糕,那么它几乎是无用的。 –

0

填充数据网格后,试试这个。

datagrid.ClearSelection();

相关问题