嘿伙计们,我有一个很小的问题,请参阅下面的代码
// this is main load
private void Form1_Load(object sender, EventArgs e)
{
tabAddRemoveOperator.SelectedIndex = 0;
}
//this is selected index changed event method
private void tabAddRemoveOperator_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabAddRemoveOperator.SelectedIndex == 0)
//someCode;
else if (tabAddRemoveOperator.SelectedIndex == 1)
//someCode;
}
我的问题是,我正在改变tab selectedindex
on form_load
方法如此tab_selectedindexchanged
事件应该被解雇吧?但它不是..
我在谷歌上搜索了这个问题,所以我发现一个线程说,直到你的控件被加载,它们的事件填充才会被触发,但我不认为这是正确的,因为所有控件都只在构造函数中加载和初始化。我对这个问题很困惑。
The SelectedIndexChanged
事件永远不会引发,因为default SelectedIndex
is 0.当您设置SelectedIndex
到表格中的0Load
事件处理程序中,所选索引实际上不会更改为新值,因此永远不会引发该事件。
我想到了两种可能的解决方法:
您可以针对以下情况重构初始化代码SelectedIndex == 0
到另一个方法,然后从SelectedIndexChanged
事件处理程序和表单的Load
事件处理程序。
您可以设置SelectedIndex
到 0 以外的索引Load
事件处理程序,然后立即将其设置回 0。这将导致SelectedIndex
值改变两次,但会得到预期的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)