一、背景

一年前有学习过C#,但没有在项目中去实际做APP,重新捡起来应用到项目中。我同事本来做好一个CANOPEN设备管理的界面,由于近期搜索了别人的开发的界面,我觉得有很多东西要重新安排,以及我已经实现封装CANOPEN协议成可调用的函数库,可以边调试边写实现功能会更实际一点,目前我已经规划好界面大体的方向,所以决定重新写好这个CANOPEN设备管理的界面。由于有好多的不懂,还是一步一步来,从最基本的开始。下面是今天使用到的控件。

二、菜单控件

我要实现如下图所示把窗体上增加菜单栏,菜单下可以点击进入子菜单。



使用控件MenuStrip,可以实现菜单栏的编辑,如下图所示,1位置编辑写入主菜单名称,2位置编辑写入子菜单名称。

三、主窗体打开子窗体

实现一个窗口的菜单栏的子菜单再打开另外一个窗口。如下图所示,我通过菜单栏点击进入另外一个窗口。



首先要先建立另外一个窗体,在解决方案的项目管理那里,右击,选择"添加",再选择"windows窗体"。如下图所示。



双击点击的菜单栏增加如下代码:

            Form2 CanSetting = new Form2();
CanSetting.Text = "CAN SETTING"; //设置子窗口的名称
CanSetting.Show(); //显示出来子窗口

这样就可以在子窗口中增加其它的控件的。

四、GroupBox控件

我使用GroupBox控件是为了把其它的控件给框起来,但出现的问题有其它有控件总是被GroupBox控件给覆盖起来看不到。



实际操作是先把GroupBox控件给拉进去,再把其它的控件拉进去放在它的上边,还要将GroupBox控件属性的EnabledVisible设置成True

五、ComboBox下拉表实现

如下图所示,如果我用一个数组去存储下拉的内容,在程序中去实现列表比较麻烦。



可以直接使用comboBox属性里边的Items中加入要罗列的内容。



对于控件comboBox还要设置属性里边的DropDownStyleDropDownList,这样下拉里边的内容就修改不了,DropDown下拉后的内容是可以修改的。

六、参考文档

http://jingyan.baidu.com/article/67508eb4e0efd39ccb1ce465.html

by 羊羊得亿

2017-06-15 ShenZhen

C#之菜单控件、主窗体打开子窗体、GroupBox控件使用的更多相关文章

  1. Caliburn.Micro 关闭父窗体打开子窗体

    比如我们在做登录的时候需要关闭父窗体打开子窗体.使用Caliburn.Micro它的时候我们关闭登录窗口的时候主页面也会关闭. 解决方法就是在登录页面的CS里面写 IndexView iv = new ...

  2. winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体

    winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始 ...

  3. 主窗体里面打开子窗体&&打印饼图《Delphi 6数据库开发典型实例》--图表的绘制

    \Delphi 6数据库开发典型实例\图表的绘制 1.在主窗体里面打开子窗体:ShowForm(Tfrm_Print); procedure Tfrm_Main.ShowForm(AFormClass ...

  4. C#_父窗体跟子窗体的控件操作

    很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件.相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可. 下面重点介绍前一种,目前常见 ...

  5. c# 子线程打开子窗体

    下边是在子线程打开子窗口,结果跑到else 里边了跨线程操作窗体控件InvokeRequired失效,无法用于打开子窗体,addonetwo.InvokeRequired,访问不了呢? 大神知道帮忙回 ...

  6. 界面主窗体,子窗体的InitializeComponent(构造函数)、Load事件执行顺序

    主窗体,子窗体的InitializeComponent(构造函数).Load事件执行顺序1.执行主窗体定义事件 new函数时,同时执行主窗体构造函数,默认就一个InitializeComponent函 ...

  7. 2016.6.18主窗体、子窗体InitializeComponent()事件、Load事件发生顺序以及SeleChanged事件的发生

    主窗体,子窗体的InitializeComponent(构造函数).Load事件执行顺序 1.主窗体定义事件 new 主窗体() 构造函数进入主窗体InitializeComponent函数,该函数中 ...

  8. window.open 打开子窗体,关闭全部的子窗体

    需求:通过window.open方法打开了子窗体,当关闭主窗体时.子窗体应当也关闭. 实现思路: 1.打开子窗体函数window.open(url,winName)的第二个參数winName能够唯一标 ...

  9. winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法

    最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操 ...

随机推荐

  1. 关于HttpClient模拟浏览器请求的參数乱码问题解决方式

    转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44407297 http://www.llwjy.com/blogdetail/9 ...

  2. 怎样给UINavigationBar加入button?

    Mads Mobæk:给UINavigationBar加入button的演示样例代码 1 2 3 4 5 6 7 8 UIBarButtonItem *rightButton = [[UIBarBut ...

  3. Delphi的参数修饰const/var/output 与C++的对应关系

    delphi的const/input和默认的没有修饰, C++都是一样的 delphi的var,对应C++那边是指针,  调用方需要管理内存(负责分配内存及销毁) delphi的output , 对应 ...

  4. POJ - 3847 Moving to Nuremberg 动归

    POJ - 3847 Moving to Nuremberg 题意:一张无向有权图,包括边权和点权,求一点,使得到其他点的点权*边权之和最小 思路: #pragma comment(linker, & ...

  5. Git 操作笔记

    ¥先放个地址:这个视频超详细 https://www.bilibili.com/video/av10475153 分了2部分: 1是GitHub的功能介绍:2是pc端+doc命令的操作+发布个人网站 ...

  6. Laravel 框架指定路由关闭 csrf

    修改 app\Http\Middleware\VerifyCsrfToken.php 内容: <?php namespace App\Http\Middleware; use Closure; ...

  7. UVA 11642 Fire!

    Fire! Time Limit: 1000ms Memory Limit: 131072KB This problem will be judged on UVA. Original ID: 116 ...

  8. javaWeb自己定义可排序过滤器注解,解决Servlet3.0下@WebFilter注解无法排序问题

    com.lwl.anno 凝视类型 @WebFilterSort 须要用的jar包 http://download.csdn.net/detail/u013202238/9431110 用该注解注冊的 ...

  9. leetCode 82.Remove Duplicates from Sorted List II (删除排序链表的反复II) 解题思路和方法

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...

  10. 使用Gmail邮箱

    由于国内不能直接访问google,所以其相关产品也不能直接使用.因为Gmail简洁,使用方便,国际上用的人很多.最近发现网易邮箱大师可以直接访问Gmail,所以将方法介绍给大家,如果大家只有访问Gma ...