WinForm 多窗体、菜单和工具栏

  今天,我首先先学习了一下在WinForm程序开发中常遇到的问题——多窗体程序运行问题。

  在开发多窗体程序时,常会遇到以下四个方面的问题:

  一、哪个是主窗体

  问题:主窗体隐藏了,关闭其它窗体后,没有将主窗体显示/关闭,那么程序就关不上了。

  当遇到这个问题时,我们通常的解决办法是:构造函数传值,将窗体传到另一个窗体中去,进行关闭。

  二、窗体只能打开一个

  创建一个全局的泛型集合,为了放置全部打开的窗体。在窗体打开之前,判断集合中是否有name一致的窗体,如果有就说明已经打开了,就不要再打开了。

  问题:当窗体打开了,关闭后,就无法再次打开了。

  这个问题通常的解决办法是:当窗体关闭时,清除Form1中集合中的此窗体对象记录。

  问题:当窗体已经打开,再次点击打开按钮,不会将已打开的窗体重新显示并焦点进入。

  这个问题的解决办法是:找到已打开对象,将WindowState属性设置为:FormWindowState.Normal;找到已打开窗体的对象,使用Focus方法。

  三、窗体之间的传值和控制

  传值:构造函数传值。

  控制:第一步,找到窗体对象,第二步,将窗体对象的控件值更改。

  注意:要将窗体中的对象访问权限修改。

  四、提示框类型的窗体

  ShowDialog();

  它的作用是:弹出一个必须先输入完本窗体内容才能继续其他窗体操作的窗体。

  接下来,我学习了菜单和工具栏的内容。 

  1、MenuStrip:
  顶部菜单
  分割线:1、- 2、右键插入 split。。。

  快捷键:每一个项右键属性的最下面可以设置快捷键
  不管选项隐藏还是菜单隐藏,快捷键都管用

  2、ContextMenuStrip:
  右键菜单

  3、StatusStript:
  底部菜单

  4、ToolStrip
  工具条

  5、ToolStripContainer
  工具条容器

时间: 2024-12-17 14:19:43

WinForm 多窗体、菜单和工具栏的相关文章

0922 多窗体,菜单和工具栏

多窗体 这里所谓的多窗体就是我们所说的打开一个窗体后,从这个窗体打开另一个窗体,打开的窗体只能打开一个,当再次点击时会把焦点移入打开的新窗体 1.   首先我们先定义一个泛型集合来存放打开的窗体,来判断是否打开过这个窗体 List<Form> Flist = new List<Form>(); 2.在主窗体的按钮上写方法 bool has = false;//用来判断是否打开过第二个窗体 Form2 f2 = new Form2(this);//将这个窗体传入第二个窗体实现第二窗体

【2017-04-25】winform公共控件、菜单和工具栏、Tab和无边框窗体制作

一.公共控件 1. Button   按钮 + 布局 - AutoSize   按钮尺寸自动适应里面内容的长度 - Location    位置 - Margin       控件与控件外边距 - Size     当前尺寸 +行为 - Enabled     是否可用 - TabIndex     该控件对应的Tab键索引值 - TabStop      该控件对应的Tab键禁用时的索引值 - Visible     显示和隐藏 +外观 - BackColor    背景色 - Backgro

WinForm 菜单和工具栏

菜单和工具栏: 1.MenuStrip:顶部菜单 优先级最高,默认在最顶部 (1)分割线:a.打一个减号 “-”                   b.右键插入Separator (2)点击事件:每一项都可以当做按钮使用,可以设置点击事件 (3)快捷键:每一个项右键属性的最下面可以设置快捷键(ShortcutKeys)                  不管选项隐藏(visible-false)还是菜单隐藏,快捷键都管用 (4)快速建顶部菜单的方法:右击,选择插入标准项,基本的顶部菜单就可以了

【2017-04-25】winform公共控件、菜单和工具栏

一.公共控件 公共控件很多的属性很多都相似,这些是大部分都相同的: +布局 - AutoSize:自动适应控件上文字内容- Location:位置- Margin:控件间的间距- Size:控件大小 +行为 - Enabled:是否可用- TabIndex:按Tab键时,焦点顺序的索引,从0开始- TabStop:焦点是否停留- Visible:显示和隐藏 +外观 - BackColor:背景色- BackgroundImage:背景图片- BackgroundImageLayout:背景图显示

WinForm菜单和工具栏

菜单和工具栏: 1.MenuStrip - 顶部菜单栏分割线:1输入- 2.右键插入 |SpearTOR 快捷键设置:每一个项右键属性的最下面可以设置快捷键不管选项隐藏还是菜单隐藏,快捷键都管用 2.ContextMenuStrip - 右键菜单可以设置多个,要设置右键菜单的控件属性里面找行为ContextMenuStrip属性 原则设定到的右键菜单 3.StatusStript - 底部菜单可以插入Statuslable 文字 ProgressBar 进度条 DrodownButton 图片按

在插件式应用程序中,实现对菜单,工具栏按钮的 完全解耦及状态控制

之前承诺会对 Winform IDE,WPF 客服程序的开发进行进一步的分解记录,很抱歉一直没有太多时间认真梳理. 本篇博客抽取了这两个应用程序的一个共通功能的实现方法进行说明,即在插件式应用程序中,对菜单及工具栏的控制. 对于复杂的应用程序开发,我们可能会将程序的功能进行分解,模块化,插件化:那么如何在应用程序的宿主中,向插件提供统一的菜单,工具栏注册,更新,销毁机制呢?以及如何做到UI无关的彻底解耦合? 看两个例子: 基于 Winform 的插件式应用程序: http://www.cnblo

多窗口切换传值,菜单,工具栏

在form1中打开form2:private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); this.Hide();//打开From2时,隐藏From1 }这样出现这样一个问题:在打开form2的时候form1隐藏了,也就无法再将form1关闭,会在后台一直运行.解决方案:构造函数传值,在关闭form2的时候也同时将form1关闭. Form1 F1 = null; publ

2017-4-25 公共控件属性 菜单和工具栏属性

(一)公共控件属性 1.Button按钮 AutoSize  内容自适应大小 Location  控件左上角相对于容器左上角的位置 Margin  控件与控件的外边距 Enabled  控件是否可以选中 TabIndex   布局用 TabStop 布局用 Visible    是否显示 FlatAppearance  FlatStyle  2个属性配合使用,可以控制按钮的边框样式等 2.CheckBox checked  是否被选中 Appearance 外观样式 CheckAlign   复

Winform 实现像菜单一样弹出层

原文:Winform 实现像菜单一样弹出层 在实际工作中,如果能像菜单一样弹出自定义内容,会方便很多,比如查询时,比如下拉列表显示多列信息时,比如在填写某个信息需要查看一些信息树时.这个时候自定义弹出界面就显的非常重要了 我这里其实用到的是网上找到的一个控件(下载地址),控件可以把你装载的任何对象显示出来(这里的对象是指:窗体,自定义控件等),这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享出来而已,同时也做个记录,方便以后查找 开始正文,这里我做一个多列下拉列表来说明: 1.新建w