如何调用A)一个文本框B)和一个表单中的按钮单击事件(这是通过一个类在按钮单击事件中创建的)
本文关键字:一个 单击 事件 按钮 创建 调用 何调用 文本 表单 | 更新日期: 2023-09-27 18:17:37
我创建了一个类
public static class Prompt
{
public static Form showCategoryDialog()
{
Form addCategoryDialog = new Form()
{
Width = 500,
Height = 150,
FormBorderStyle = FormBorderStyle.FixedDialog,
Text = "caption",
StartPosition = FormStartPosition.CenterScreen
};
Label textLabel = new Label() { Left = 50, Top = 20, Text = "asd" };
TextBox textBox = new TextBox() { Left = 50, Top = 50, Width = 400 };
Button confirmation = new Button() { Text = "Ok", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.OK };
confirmation.Click += (sender, e) => { addCategoryDialog.Close(); };
addCategoryDialog.Controls.Add(textBox);
addCategoryDialog.Controls.Add(confirmation);
addCategoryDialog.Controls.Add(textLabel);
addCategoryDialog.AcceptButton = confirmation;
return addCategoryDialog;
}
}
现在在表单的按钮中单击事件
private void addCateogoryClick(object sender, EventArgs e)
{
Form a = new Form();
a = Prompt.showCategoryDialog();
a.ShowDialog();
}
在那里,一个文本框,按钮和标签被创建在一个表单和该表单被分配给表单'a'。由于表单'a'也有文本框,按钮和标签,我想叫他们像
if(a.textbox.text == string.empty)
{
//do this
}
并访问它的button_click事件,比如
a.button_click
{
if(button.text == "ok")
//do this
}
总结:我不知道如何访问表单的控件(文本框,按钮等),也不知道如何在这种情况下使用事件
从Form中派生新类。在构造函数中添加控件的方式与在showCategoryDialog()中所做的相同,然后为每个控件添加属性,使您可以访问该控件。例如,这个示例展示了如何仅为Button:
执行此操作public class CategoryDialog : Form
{
public CategoryDialog()
{
button1 = new Button() { Text = "Ok", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.OK };
Controls.Add(button1);
}
Button button1;
// this property will let you access button
public Button Button1 { get { return button1; } }
}
当你创建这个表单的实例时,你现在可以这样访问按钮:
CategoryDialog a = new CategoryDialog();
a.Button1.Text = ...
事件(如Button click)无需执行任何操作即可自动访问。例如
a.Button1.Click += (sender, e) =>
{
//sender parameter contains instance of Button that was clicked
var button = sender as Button;
if(button.PropertyToBeChecked == ...)//check whatever you want to
...
};
如果你使用的是Visual Studio,那就更简单了。添加新窗体到您的项目(它会自动创建派生类),拖动控件(按钮,标签等)到此窗体,然后单击每个控件并将其属性"Modifiers"更改为Public。