Winform关于菜单的简单问题~

ddsxd19 2010-02-08 01:48:59
我想做的就是一个最简单的思路:Winform里点菜单在当前页面刷新变成其他的页面。
下面仔细说下:

建一个窗口,放一个menustrip在窗口最上面做菜单。
然后点击不同菜单在窗口中显示不同的其他内容窗体。
最上面的菜单不变。

这个怎么实现?我所知Winform不是web,不能点一个菜单然后改变当前页面的链接这样做。
Winform都是new一个然后form.show()弹出窗口来。

我现在就想点了菜单后把当前窗口刷新成点击菜单指定的窗口,而不是弹出来。把这要怎么办?


请教了~
...全文
251 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
ddsxd19 2010-02-11
  • 打赏
  • 举报
回复
不好意思这两天又点忙。。
问题已经解决了,就用MDI子窗体的方法就可以完美实现,子窗体的一些属性需要配置一下,因为不需要最大化最小化和边框。
结贴~
lixudong1011324 2010-02-09
  • 打赏
  • 举报
回复
如果是的话找我
我有个相似的dll 只是是别人写的
lixudong1011324 2010-02-09
  • 打赏
  • 举报
回复
你要的是vs编辑器上面的那种效果吧
wxm3630478 2010-02-09
  • 打赏
  • 举报
回复
MDI .........Panel.......TabControl 等等
huanqun1020 2010-02-09
  • 打赏
  • 举报
回复
顶,学习了
..........
xiaoshen1360 2010-02-08
  • 打赏
  • 举报
回复
引用 18 楼 xiaoshen1360 的回复:
引用 4 楼 fdh120 的回复:如果界面不多的话,也可以试试在一个form下通过控制几个panel的visible属性,实现页面变化
我想这个

当我没说
xiaoshen1360 2010-02-08
  • 打赏
  • 举报
回复
引用 4 楼 fdh120 的回复:
如果界面不多的话,也可以试试在一个form下通过控制几个panel的visible属性,实现页面变化

我想这个
Allen2064 2010-02-08
  • 打赏
  • 举报
回复
newForm frm = new newForm();
frm.MdiParentM = this;
frm.Show();
tangx100 2010-02-08
  • 打赏
  • 举报
回复
提醒一下,解决了就结贴吧
lzsh0622 2010-02-08
  • 打赏
  • 举报
回复
使用MDI方式,其他窗口作为子窗口显示.

Form2 frm = new Form2();
frm.MdiParentM = this;
frm.Show
xiongxyt2 2010-02-08
  • 打赏
  • 举报
回复
childform form = new childform();
form.show();
PEGAMAN 2010-02-08
  • 打赏
  • 举报
回复
最好用MDI方式解決 若不要可用以下方法
把所有的Form裡面的元件抽離出來 寫成UserControl 使用者控制項
然後程式只建立一個窗體 於其菜單中 動態建立你所抽離出來的UserControl即可
fangradar 2010-02-08
  • 打赏
  • 举报
回复
给你一个思路,用mdi窗体点击不同的菜单,让不同的mdi子窗体激活就可以了,就可以事先tabpage一样的效果了!!
ddsxd19 2010-02-08
  • 打赏
  • 举报
回复

//在其他帖子里找到的,和2楼说的差不多
childform form = new childform();
form.TopLevel = false;
form.Dock = DockStyle.Fill;
form.FormBorderStyle = FormBorderStyle.None;
form.Parent = panel;
form.show();

我今晚回去先试试这个方法和用MID子窗体的方法。
成功了就来结贴
flyerwing 2010-02-08
  • 打赏
  • 举报
回复
是不是说子窗体和主窗体菜单合并
rqx110 2010-02-08
  • 打赏
  • 举报
回复
用不同的panel,控制panel的显示,隐藏
curtishang 2010-02-08
  • 打赏
  • 举报
回复
一般说来 WINFORM 不会采取这样的做法 通常都是这样:

主窗体是一个MDIFORM 父窗体 然后点菜单 弹出相应的FORM

当然如果一定要按照你的要求也是有办法的 只是稍微麻烦点:

首先你的主窗体不是MDIFORM 而是一个单独的FORM 每次点菜单 把FORM.Controls清空 然后通过代码生成相应的控件 设定好控件的属性 大小 位置等 然后添加到FORM.Controls集合中
再点其他菜单 重复这个过程

对于习惯拖控件来设计窗体的我们来说 这个真的很麻烦 不过我也可以教你的取巧的办法:

你先生成一个临时的Form 把要显示的控件拖上去 这个时候 designer.cs里就有你要的布局代码了 你COPY到你自己的方法里以后在调用就好了
longhair9711 2010-02-08
  • 打赏
  • 举报
回复
用winform mdi子窗体可以实现你的功能
ddsxd19 2010-02-08
  • 打赏
  • 举报
回复
引用 4 楼 fdh120 的回复:
如果界面不多的话,也可以试试在一个form下通过控制几个panel的visible属性,实现页面变化

Winform的ERP。。多少个form都有可能。。。
ddsxd19 2010-02-08
  • 打赏
  • 举报
回复
引用 2 楼 lianshaohua 的回复:
new出来后,把form.toplevel=false;然后把窗体添加到当前窗体上:currentform.controls.add(form);
form.show();就可以了;

多谢!
想问一下这样效果是和web一样在当前页面变换吗?别是当前窗口消失了又蹦出来个。。。
加载更多回复(4)

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧