同一MenuStrip在多个窗口的显示

在编写时对同一个MenuStrip我们往往需要使用多次,但每次都重新写又太过于复杂。为了省事,我们可以使用传参的方式。就是,在新的Form的构造函数中传进

如:

        private MenuStrip Form2Main;
        public Form2(MenuStrip msMain)
        {
            InitializeComponent();
            this.Form2Main = msMain;
            this.Form2Main.Parent = this;//将Form2设置为Form2Main的父窗体

            this.Form2Main.Show();
        }
此时再在开始构建Form2的地方调用

如:

        private void 登录ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(this.menuStrip1);
            f2.Show();
            this.Hide();
        }
但这时又有问题了,就是除了最初构建MenuStrip的窗体可以隐藏当前窗体外,别的窗体Hide() 都无效了。因为this代表的只是MenuStrip开始创建时的窗体自然是没用的。我们应当找到现在它所在的窗体。

this.menuStrip1.FindForm();

改进后的代码如下:

        private void 登录ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.menuStrip1.FindForm().Hide();
            Form2 f2 = new Form2(this.menuStrip1,0);
            f2.Show();
        }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值