ALL,
我的WinForms应用程序上有一个DataGridView控件,其选择属性为“整行”,没有多选。我还将SelectionChanged委托附加到它,我需要获取当前选定的行。
private void order_SelectionChanged(object sender, EventArgs e)
{
ordersItemIndex = order.SelectedRows[0].Index;
}
问题是,当程序启动时,根本就没有选择,只有以后的用户才能用鼠标或键盘改变选择。所以在我的Form_Load()事件中我有这个:
order.ClearSelection();
但是,此代码路径会在程序启动时抛出异常。
有没有一种很好的方式告诉程序“我们正在加载表单,不要调用委托”,没有任何其他变量?
谢谢。
答案 0 :(得分:4)
您可以在Form_Load()
(不在InitializeComponents()
)
但最好检查你的处理程序是否有任何选定的行。
private void order_SelectionChanged(object sender, EventArgs e)
{
if (order.SelectedRows.Count > 0)
ordersItemIndex = order.SelectedRows[0].Index;
}