上下表关联处理
我们经常会遇到这样的情况,在一个窗体中有一个上表,一个下表。
下表随着上表的选择变化进行相应的更新,经过几次的修改后,现在把我的方法拿来大家探讨。
private int mainRowIndex; //主表格中当前的行号默认设为-1
private int funRowIndex; //记录子表格的当前行号.默认设为-1
private void gridMaster_SelectionChanged(object sender, EventArgs e)
{
if (gridMaster.CurrentCell != null)
{
if (mainRowIndex != gridMaster.CurrentCell.RowIndex)
{
//执行相应的函数,更新下表内容
mainRowIndex = gridMaster.CurrentCell.RowIndex;
}
}
}
有朋友可能会问,为什么要设一个index呢,直接在 SelectionChanged中调用不行吗?
其实你在用户进行绑定时,系统会触发多次Selectionchanged事件,如果不用index来判断是否为行号有改变。
那么系统调用多么你所需执行的函数。从而降低了系统的速度。
其实提高系统性能,需处处注意,否则系统很慢将无法找原因。
下表随着上表的选择变化进行相应的更新,经过几次的修改后,现在把我的方法拿来大家探讨。
private int mainRowIndex; //主表格中当前的行号默认设为-1
private int funRowIndex; //记录子表格的当前行号.默认设为-1
private void gridMaster_SelectionChanged(object sender, EventArgs e)
{
if (gridMaster.CurrentCell != null)
{
if (mainRowIndex != gridMaster.CurrentCell.RowIndex)
{
//执行相应的函数,更新下表内容
mainRowIndex = gridMaster.CurrentCell.RowIndex;
}
}
}
有朋友可能会问,为什么要设一个index呢,直接在 SelectionChanged中调用不行吗?
其实你在用户进行绑定时,系统会触发多次Selectionchanged事件,如果不用index来判断是否为行号有改变。
那么系统调用多么你所需执行的函数。从而降低了系统的速度。
其实提高系统性能,需处处注意,否则系统很慢将无法找原因。