我是C#的新手,可以使用一些帮助。
到目前为止,我用C#创建了一组8个窗体,这些窗体有基本的东西,如文本框,标签,单选按钮等。现在我已经完成了所有这些窗体的制作,我想要有一个额外的表单(称为选择器表单)我可以用来选择其他8个表单之一。在任何给定的时间,我希望选择器窗体位于其他窗口的顶部,它将有8个单选按钮(或常规按钮,无关紧要)。单击其中一个按钮时,当前表单(不是“选择器”表单)应该消失,并且应该出现一个新表单。按钮的名称将是显示的新表单的名称。
我看过几个例子,这是我到目前为止的代码:
void Button1Click(object sender, EventArgs e)
{
//this.Hide();
var form1 = new CASII();
form1.Closed += (sender1, args) => this.Close();
form1.Show();
}
void Button2Click(object sender, EventArgs e)
{
// this.Hide();
var form2 = new CCARAdmin();
form2.Closed += (sender1, args) => this.Close();
form2.Show();
//Application.Run(new CCARAdmin());
}
我遇到的问题是我不想隐藏选择器表单,这样做,我不知道如何识别打开的另一个表单关闭它然后打开另一个表单。
从启动程序开始,逻辑就像这样: 显示选择器表单 在“选择器”表单上单击按钮时,将“选择器”表单保持在顶部,并使用按钮名称显示另一个表单。 在“选择器”表单上单击其他按钮时,关闭打开的上一个表单(而不是“选择器”表单),然后打开与该按钮名称对应的新表单。将选择器表单保持在顶部。 当“选择器”表单关闭时,应用程序将停止。
答案 0 :(得分:1)
selectorForm.TopMost = true(这将有助于保持选择器窗体始终位于顶部)。 在选择器表单中创建一个表单变量,以保留当前打开的表单的引用。
单击按钮的示例代码:
Form frm = null;
void Button1Click(object sender, EventArgs e)
{
//this.Hide();
var form1 = new CASII();
if (frm == null)
{
frm = form1;
}
else
{
frm.Close();
}
form1.Show();
this.TopMost = true;
frm = form1;
}
答案 1 :(得分:1)
我遇到的问题是我不想隐藏选择器表单 这样做,我不知道如何识别其他形式 打开关闭它然后打开另一种形式。
TopMost
设置为True
,使其始终位于顶部。要么
您可以在打开新表单后使用BringToFront
答案 2 :(得分:0)
我通过将TopMost设置为true来解决此问题,然后在每个按钮下使用以下代码:
for (int i = Application.OpenForms.Count - 1; i >= 0; i--)
{
if (Application.OpenForms[i].Name != "FormSelector")
Application.OpenForms[i].Close();
}
var form = new TRAC();
if (radioButton9.Checked == true)
{
form.Show();
}