我正在开展一个需要弹出窗口的项目。但问题是我还想通过表单设计器在这个弹出窗口中添加文本框等。
所以基本上我有一个按钮,当你点击它时,它将打开我在表单设计器中设计的另一个窗口。
我一直在做一些谷歌搜索,但我还没找到我需要的东西所以我希望你们能帮助我!
答案 0 :(得分:29)
使用Visual Studio创建另一个表单(让我们称之为formPopup
)。在按钮处理程序中编写以下代码:
var formPopup = new Form();
formPopup.Show(this); // if you need non-modal window
如果您需要非模态窗口,请使用:formPopup.Show();
。如果您需要一个对话框(因此您的代码将在此调用中挂起,直到您关闭打开的表单),请使用:formPopup.ShowDialog()
答案 1 :(得分:6)
这并不容易,因为Windows窗体中不支持弹出窗口。虽然Windows窗体基于win32,但支持win32弹出窗口。 如果你接受一些技巧,下面的代码将设置你弹出窗口。您决定是否要充分利用它:
def foo(a: A): B = { a match {
case ..
case ..
}} ensuring { .. }
尝试一下,你必须玩它的位置和大小。使用它错误,没有任何显示。
答案 2 :(得分:5)
C#中的表单是继承Form
基类的类。
您可以通过创建类的实例并调用ShowDialog()
来显示弹出窗口。
答案 3 :(得分:3)
如果您想在单击按钮时创建新表单,则以下代码可能对您有用:
private void settingsButton_Click(Object sender, EventArgs e)
{
// Create a new instance of the Form2 class
Form2 settingsForm = new Form2();
// Show the settings form
settingsForm.Show();
}
从这里开始,您还可以使用'Show Dialog' method
答案 4 :(得分:1)
“但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等。”
从您的描述中不清楚您所处的开发过程的哪个阶段。如果您还没有弄明白,要创建新表单,请单击项目 - >添加Windows窗体,然后键入表单的名称并单击“添加”按钮。现在,您可以按预期向表单添加控件。
当需要显示它时,请按照其他帖子的建议创建实例并根据需要调用Show()或ShowDialog()。
答案 5 :(得分:0)
我正在使用这种方法。
添加要弹出的内容,添加所需的所有控件。 在代码中,您可以处理用户输入并将结果返回给调用者。 弹出窗体只需创建窗体和显示方法的新实例。
/* create new form instance. i am overriding constructor to allow the caller form to set the form header */
var t = new TextPrompt("Insert your message and click Send button");
// pop up the form
t.Show();
if (t.DialogResult == System.Windows.Forms.DialogResult.OK)
{
MessageBox.Show("RTP", "Message sent to user");
}