winforms 检查是否选择了特定选项卡页面(活动)

gmxoilav  于 2023-10-23  发布在  其他
关注(0)|答案(6)|浏览(113)

我正在创建一个事件来检查选项卡控件中的特定选项卡页是否处于活动状态。
关键是,如果选项卡控件中的选项卡页面是当前选定的选项卡,则它将触发一个事件。有什么能给予我想要的密码吗?

u91tlkcl

u91tlkcl1#

假设您在Winform中查找,则该选项卡存在SelectedIndexChanged事件
现在,在其中,您可以检查特定的选项卡并继续执行逻辑

private void tab1_SelectedIndexChanged(object sender, EventArgs e)
{
     if (tab1.SelectedTab == tab1.TabPages["tabname"])//your specific tabname
     {
         // your stuff
     }
}
umuewwlo

umuewwlo2#

检查一个特定的选项卡页是否是选项卡控件的当前选定页很容易;只需使用选项卡控件的SelectedTab属性:

if (tabControl1.SelectedTab == someTabPage)
{
// Do stuff here...
}

如果代码是基于某个事件而不是所选择的选项卡页面执行的,则这一点更有用(在这种情况下,SelectedIndexChanged将是更好的选择)。
例如,我有一个应用程序,它使用定时器定期轮询TCP/IP连接上的内容,但为了避免不必要的TCP/IP流量,我只轮询当前选定选项卡页中更新GUI控件的内容。

cpjpxq1n

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");
9q78igpj

9q78igpj4#

不管是什么原因,上面的工作对我来说都不起作用。这就是我所做的:

if (tabControl.SelectedTab.Name == "tabName" )
{
     .. do stuff
}

其中tabControl.SelectedTab.Name是在tabcontrol本身中分配给页的name属性。

zpqajqem

zpqajqem5#

我认为使用事件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,则会触发此事件。

jhkqcmku

jhkqcmku6#

这也可以起作用。

if (tabControl.SelectedTab.Text == "tabText" )
{
    .. do stuff
}

相关问题