使用来自不同表单的按钮在 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 付款按钮?

动态创建到 WPF 表单的用户控件上的按钮单击事件

使用来自单独组件的按钮禁用表单

访问表单控件闪烁控件是来自Class的setFocus

Nuxtjs/Vuejs 表单数据在导航到不同的路线并使用浏览器后退按钮返回上一个路线时丢失

MS Word 2013 表单,使用宏创建另存为并提交按钮