调用从类向窗体添加控件的函数
本文关键字:控件 函数 添加 窗体 调用 | 更新日期: 2023-09-27 18:24:08
我正试图在运行时将一些控件添加到我的Form中。我已经创建了一个函数,将控件添加到Form的编码区域中。我必须从类中调用函数,这样这些值才能用于许多其他形式。这是代码:
在类中:
public void AddControl(string ControlTxt)
{
Form1 frm1 = new Form1();
frm1.AddButton(ControlTxt);
}
形式:
public void AddButton(string TxtToDisplay)
{
Button btn = new Button();
btn.Size = new Size(50, 50);
btn.Location = new Point(10, yPos);
yPos = yPos + btn.Height + 10;
btn.Text = TxtToDisplay;
btn.Visible = true;
this.Controls.Add(btn);
}
private void button1_Click(object sender, EventArgs e)
{
Class1 cls1 = new Class1();
cls1.AddControl("Hello");
}
当我点击button1
时,代码不起作用,也没有显示任何异常。如何从类中调用Form的AddButton
函数?
如果您的主窗体是一个新的自定义窗体类,您可以使用这个。AddButton()。
现在你正在对一个Form进行新的初始化,但你没有在任何地方显示它。
事实上,这也是你没有收到错误的原因。应用程序按程序运行,但新创建的表单从未设置为窗口或设置为可见。
你每次点击都会创建一个新表单(而不是使用当前表单),我会这样做(同时尝试接近你的代码):
public class SomeClass
{
public static void AddControl(Form form, string controlTxt)
{
form.AddButton(form, controlTxt);
}
public static void AddButton(string form, string TxtToDisplay)
{
Button btn = new Button();
btn.Size = new Size(50, 50);
btn.Location = new Point(10, yPos);
yPos = yPos + btn.Height + 10;
btn.Text = TxtToDisplay;
btn.Visible = true;
form.Controls.Add(btn);
}
}
private void button1_Click(object sender, EventArgs e)
{
SomeClass.AddControl(this, "Hello");
}