Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#列表中的控制事件<;控制>;_C#_List_Events_Controls - Fatal编程技术网

C#列表中的控制事件<;控制>;

C#列表中的控制事件<;控制>;,c#,list,events,controls,C#,List,Events,Controls,这是我的代码: List<TabPage> _tpList = new List<TabPage>(); int _iTabCount = 0; TabPage CreateNewTab(string sTitle) { TabPage t = new TabPage(); t.BackColor = Color.White; t.Text = sTitle; _tpList.Add(t);

这是我的代码:

List<TabPage> _tpList = new List<TabPage>();
int _iTabCount = 0;

    TabPage CreateNewTab(string sTitle)
    {
        TabPage t = new TabPage();
        t.BackColor = Color.White;
        t.Text = sTitle;
        _tpList.Add(t);
        this.Tab.Controls.Add(_tpList[_iTabCount]);
        _iTabCount++;
        return _tpList[_iTabCount - 1];
    }
List\tpList=newlist();
int _iTabCount=0;
选项卡页创建新选项卡(字符串缝合)
{
TabPage t=新TabPage();
t、 背景色=颜色。白色;
t、 文本=针;
_tpList.Add(t);
this.Tab.Controls.Add(_tpList[_iTabCount]);
_iTabCount++;
返回_tpList[_iTabCount-1];
}
我想处理列表中某个控件的单击事件
\u tpList


这是可能的吗?

为什么不直接使用从其父类获取的
选项卡页面呢。

您可以在创建选项卡页面之后添加事件处理程序

TabPage t = new TabPage(); 
t.Click += new System.EventHandler(this.tabPage1_Click);
.....
this.Tab.Controls.Add(_tpList[_iTabCount]);    
.....
并添加如下代码:

    private void tabPage1_Click(object sender, EventArgs e)
    {
        TabPage t = sender as TabPage;
        if(t.Text == "MyPage")
           ......
    }
最终,您可以使用TagPage的Tag属性或Name属性为页面设置唯一标识符,以便更好地检查tabPage1\u Click以发现实际单击的页面

但是,我想指出,了解选项卡控件上哪个选项卡页处于活动状态的最佳方法是在选项卡控件本身上处理所选事件。该事件的TabControlEventArgs包含当前选定的tabpage

    private void tabControl1_Selected(object sender, TabControlEventArgs e)
    {
        Console.WriteLine(e.TabPage.Text);
    }

只需在TabPage上处理鼠标单击,如
t.Click+=newsystem.EventHandler(TabPageClicked)