私は多くのフォームがありますが、同じ機能を持つボタンを1つ追加したいと思います。それらのすべてに (終了ボタン)を押します。
私はボタンを複製したくありません。 これを行う方法はありますか?
私は多くのフォームがありますが、同じ機能を持つボタンを1つ追加したいと思います。それらのすべてに (終了ボタン)を押します。
私はボタンを複製したくありません。 これを行う方法はありますか?
このメソッドは、このメソッドを呼び出すフォームを含むすべてのフォームに終了ボタンを追加します。このメソッドを呼び出す場所のフォームに追加します。
public void AddExitButtons() {
foreach(Form frm in Application.OpenForms) {
Button btn = new Button();
btn.Name = "exitBtn";
btn.Text = "Exit";
btn.Location = new Point(100, 100); // Add x and y position to where you need it.
btn.Click += new EventHandler(this.exitBtn_Click);
frm.Controls.Add(btn);
}
}
public void exitBtn_Click(Object sender, EventArgs e) {
MessageBox.Show("Clicked!");
}
またはあなたがこの方法を使用する形で終了ボタンを追加したくない場合は、このコードを参照してください。
public void AddExitButtons() {
foreach(Form frm in Application.OpenForms) {
if(frm.Name != this.Name) {
Button btn = new Button();
btn.Name = "exitBtn";
btn.Text = "Exit";
btn.Location = new Point(100, 100); // Add x and y position to where you need it.
btn.Click += new EventHandler(this.exitBtn_Click);
frm.Controls.Add(btn);
}
}
}
public void exitBtn_Click(Object sender, EventArgs e) {
MessageBox.Show("Clicked!");
}
EDIT
に基づいて、コメント、私はあなたがタブコントロールのすべてのタブページにそれらのボタンを追加したいと仮定します。ここでのコードは次のようになります。
public void AddExitButtons() {
foreach(TagPage tabPge in tabControl1.TabPages) {
Button btn = new Button();
btn.Name = "exitBtn";
btn.Text = "Exit";
btn.Location = new Point(100, 100); // Add x and y position to where you need it.
btn.Click += new EventHandler(this.exitBtn_Click);
tabPge.Controls.Add(btn);
}
}
public void exitBtn_Click(Object sender, EventArgs e) {
MessageBox.Show("Clicked!");
}
「ユーザーコントロール」を使用できます。 https://msdn.microsoft.com/en-us/library/aa302342.aspx –
継承を使用して、FormWithExitButtonクラスを作成できます。 – TaW