我正在创建一个事件来检查选项卡控件中的特定选项卡页是否处于活动状态。关键是,如果选项卡控件中的选项卡页面是当前选定的选项卡,则它将触发一个事件。有什么能给予我想要的密码吗?
u91tlkcl1#
假设您在Winform中查找,则该选项卡存在SelectedIndexChanged事件现在,在其中,您可以检查特定的选项卡并继续执行逻辑
SelectedIndexChanged
private void tab1_SelectedIndexChanged(object sender, EventArgs e) { if (tab1.SelectedTab == tab1.TabPages["tabname"])//your specific tabname { // your stuff } }
umuewwlo2#
检查一个特定的选项卡页是否是选项卡控件的当前选定页很容易;只需使用选项卡控件的SelectedTab属性:
if (tabControl1.SelectedTab == someTabPage) { // Do stuff here... }
如果代码是基于某个事件而不是所选择的选项卡页面执行的,则这一点更有用(在这种情况下,SelectedIndexChanged将是更好的选择)。例如,我有一个应用程序,它使用定时器定期轮询TCP/IP连接上的内容,但为了避免不必要的TCP/IP流量,我只轮询当前选定选项卡页中更新GUI控件的内容。
cpjpxq1n3#
在.Net 4中可以使用
if (tabControl1.Controls[5] == tabControl1.SelectedTab) MessageBox.Show("Tab 5 Is Selected");
或
if ( tabpage5 == tabControl1.SelectedTab) MessageBox.Show("Tab 5 Is Selected");
9q78igpj4#
不管是什么原因,上面的工作对我来说都不起作用。这就是我所做的:
if (tabControl.SelectedTab.Name == "tabName" ) { .. do stuff }
其中tabControl.SelectedTab.Name是在tabcontrol本身中分配给页的name属性。
zpqajqem5#
我认为使用事件tabPage1.Enter更方便。
tabPage1.Enter
tabPage1.Enter += new System.EventHandler(tabPage1_Enter); private void tabPage1_Enter(object sender, EventArgs e) { MessageBox.Show("you entered tabPage1"); }
这比嵌套的if-else语句更好,因为不同的选项卡有不同的逻辑。更适合将来添加新选项卡的情况。请注意,如果窗体加载并且默认情况下打开tabPage1,则会触发此事件。
tabPage1
jhkqcmku6#
这也可以起作用。
if (tabControl.SelectedTab.Text == "tabText" ) { .. do stuff }
6条答案
按热度按时间u91tlkcl1#
假设您在Winform中查找,则该选项卡存在
SelectedIndexChanged
事件现在,在其中,您可以检查特定的选项卡并继续执行逻辑
umuewwlo2#
检查一个特定的选项卡页是否是选项卡控件的当前选定页很容易;只需使用选项卡控件的SelectedTab属性:
如果代码是基于某个事件而不是所选择的选项卡页面执行的,则这一点更有用(在这种情况下,SelectedIndexChanged将是更好的选择)。
例如,我有一个应用程序,它使用定时器定期轮询TCP/IP连接上的内容,但为了避免不必要的TCP/IP流量,我只轮询当前选定选项卡页中更新GUI控件的内容。
cpjpxq1n3#
在.Net 4中可以使用
或
9q78igpj4#
不管是什么原因,上面的工作对我来说都不起作用。这就是我所做的:
其中tabControl.SelectedTab.Name是在tabcontrol本身中分配给页的name属性。
zpqajqem5#
我认为使用事件
tabPage1.Enter
更方便。这比嵌套的if-else语句更好,因为不同的选项卡有不同的逻辑。更适合将来添加新选项卡的情况。
请注意,如果窗体加载并且默认情况下打开
tabPage1
,则会触发此事件。jhkqcmku6#
这也可以起作用。