我正在使用Tabcontrol,我为所有新的Tabpages创建了一个类。 例如,当我打开一个新的Tabpage时,该类会创建控件并放置它们。
bttn1 = new Button();
bttn1.Name = "button1";
bttn1.Text = "Start";
bttn1.Location = new Point(3, 405);
bttn1.Size = new Size(75, 23);
tp.Controls.Add(bttn1);
所以我的问题是如何检查是否点击了此按钮?
另外我的另一个问题与Timer tick事件相同。
答案 0 :(得分:1)
您可以从代码中轻松附加到按钮的Click
事件:
bttn1.Click += new EventHandler(butt1_Click);
这是处理程序:
void button1_Click(object sender, EventArgs e)
{
// ...
}
当您键入Click +=
时,Visual Studio将为您提供帮助。键入+=
后,按两次 Tab 键以获取处理程序。
我希望您为此创建了UserControl
,或者对TabPage
类进行了细分以创建控件。您应该通过您创建的新事件公开此新创建的类的按钮的Click
事件:
public class MyTabPage : TabPage
{
private Button bttn1;
public event EventHandler Button1Clicked;
public MyTabPage()
{
bttn1 = new Button();
bttn1.Name = "button1";
bttn1.Text = "Start";
bttn1.Location = new Point(3, 405);
bttn1.Size = new Size(75, 23);
bttn1.Click += bttn1_Click;
this.Controls.Add(bttn1);
}
void bttn1_Click(object sender, EventArgs e)
{
OnButton1Clicked();
}
protected virtual void OnButton1Clicked()
{
var h = Button1Clicked;
if (h != null)
h(this, EventArgs.Empty);
}
}
现在,当您创建MyTabPage
的实例时,可以将处理程序附加到Button1Clicked
事件:
MyTabPage page = new MyTabPage();
page.Button1Clicked += page_Button1Clicked;
tabControl.TabPages.Add(page);
...
void page_Button1Clicked(object sender, EventArgs e)
{
}