使用来自不同表单的按钮在 a 上创建按钮
Posted
技术标签:
【中文标题】使用来自不同表单的按钮在 a 上创建按钮【英文标题】:Creating a button on a from using a button from a different form 【发布时间】:2021-07-12 06:17:21 【问题描述】:有没有办法使用来自不同表单的按钮在表单上创建按钮?这是我到目前为止尝试过的,其他表单上没有显示任何内容:
Homepage homepage = new Homepage();
Button NewClas-s-room = new Button();
NewClas-s-room.Text = txtCreateCName.Text;
NewClas-s-room.Name = txtCreateCID.Text;
NewClas-s-room.Size = new Size(330, 55);
NewClas-s-room.Location = new Point(0,3);
homepage.panel3.Controls.Add(NewClas-s-room);
NewClas-s-room.BringToFront();
【问题讨论】:
在另一个表单中,让人认为这个表单已经显示,所以Homepage homepage = new Homepage();
创建了一个该类的新实例,不相关到现有实例,因此不会将任何内容添加到 现有实例。 -- Panel3
访问修饰符不应为public
。 -- 改为向Homepage
添加一个公共方法,该方法接受一个 Control 作为参数,然后(根据自己的条件)将此新 Control 添加到内部 UI 元素的 Controls 集合中。
【参考方案1】:
在运行阶段,很难创建新控件并使用属性和事件处理程序填充它。 我建议在设计其他表单时创建一个隐藏按钮,而不是在单击处理程序中创建一个新按钮。然后您可以单击该按钮并使其可见。
所以在按钮点击的情况下,需要一个像这样的新语句:
btnNewClas-s-room.Visible = true
此外,microsoft Docs 是学习 dotnet 编程的好地方,我喜欢它。这是一个关于它的话题: https://docs.microsoft.com/en-us/troubleshoot/dotnet/csharp/add-controls-to-windows-forms
【讨论】:
当然在运行时你可以创建新的控件。 -- 当一个winform应用程序运行时,它在CLR中运行,不支持Button Control没有任何意义,Buttons(任何Control)当然是在此平台中支持。 -- 您可以在运行时创建和使用任何类型的控件,前提是您以正确的方式进行操作(在这种情况下,考虑应将新控件添加到的表单实例)。以上是关于使用来自不同表单的按钮在 a 上创建按钮的主要内容,如果未能解决你的问题,请参考以下文章
使用来自 HTML 输入表单的信息的 PayPal 付款按钮?