如何在表单之间导航
我是一个新兴的c#和窗口forms我正在做一个项目,我遇到了一些问题
- 如何在窗口中导航窗体(我有一个菜单条,点击它会显示一个项目“品牌”,所以当我点击它,它应该在窗口内打开,我不想要使用mdiparent /容器,我有form1和form2,然后我把菜单条放在form1中,form1中有一些东西,如果使用mdiparent / container,form1 content / thing将阻止form2)
2.i使用下面的代码,问题是我想关闭form1,我点击菜单条中的“品牌”…但如何???
public partial class Form1 : Form { // i put the menu strip in form1 design public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void Check_Click(object sender, EventArgs e) { Form2 Check = new Form2(); Check.Show(); } }
您不能只关闭Form1
因为它是主窗体,但您可以隐藏它。 使用this.Hide()
。
private void Check_Click(object sender, EventArgs e) { Form2 Check= new Form2(); Check.Show(); Hide(); }
[编辑]
不确定这是不是问了什么。 但…
有许多方法可以在表单之间实现导航,例如:
在Form1
:
private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Tag = this; form2.Show(this); Hide(); }
在Form2
:
private void button1_Click(object sender, EventArgs e) { var form1 = (Form1)Tag; form1.Show(); Close(); }
我认为你应该创建用户控件而不是不同的forms。 然后,您可以根据菜单中的选择在主面板中添加用户控件。
最初类似于下面的内容
this.panel.Controls.Clear(); this.panel.Controls.Add(new UserControl_For_Form1());
用户点击菜单中的其他选项后。
this.panel.Controls.Clear(); this.panel.Controls.Add(new UserControl_For_Form2());
如果你真的想要使用你目前使用的方式。 下面的代码将有所帮助
为Form2添加Form1属性,并使用其构造函数将form1实例解析为Form2。
public partial class Form2 : Form { private Form1 form1; public Form2(Form1 myForm) { InitializeComponent(); form1 = myForm; } }
显示form2并隐藏form1。
private void Check_Click(object sender, EventArgs e) { Form2 Check= new Form2(this); Check.Show(); Hide(); }
现在,在form2结束事件中,您可以显示form2中的form1实例并关闭form2。
使用MDI表格是另一种选择。
问这个问题已经有7年了,但是如果有人还在寻找解决方案,我想给出答案。 如果您使用的是DevExpress,则可以将导航框架添加到您的程序中。 您可以在不同的组件之间切换,例如GridControl,GroupBox等。 所以你不必创建一个额外的表单,以便在表单之间导航。
上述就是C#学习教程:如何在表单之间导航分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1039355.html