Winform控件之菜单控件,工具栏控件和状态栏控件

菜单是用户获取应用程序中主要功能和实用程序的主要途径,如新建文件,打开文件等,这就需要用到菜单控件(MenuStrip)。工具栏另一种获取应用程序主要功能的常用方法,比起菜单要直观,这就需要用到工具栏控件(ToolStrip)。状态栏用于显示用户状态的简短信息,这就需要用到状态栏控件(StatusStrip)。

一,MenuStrip控件和ContenxMenuStrip控件

MenuStrip控件是由System.Windows.Forms.MenuStrip类提供的,取代了以前的MainMenu控件,是应用程序菜单结构的容器。在建立菜单时,要给MenuStrip控件添加ToolStripMenu对象,这个操作可在设置时完成,也可以在代码中完成。

ContenxMenuStrip控件是由System.Windows.Forms.ToolMenuStrip类提供的,它和MainMenu控件一样,也是ToolStripMenu对象的容器,用来创建窗体的右击显示的菜单。它和MainMenu控件的主要事件就是响应Click事件。

实例:演示MenuStrip控件和ContenxMenuStrip控件的使用

(1)在窗体中添加衣蛾MenuStrip控件和一个ContenxMenuStrip控件,单击窗体上的MenuStrip控件,写入“文件”,一个”文件“菜单就创建好了。

(2)双击“文件”生成Click事件,在事件中加入MessageBox的Show方法提示用户响应了Click事件,代码为:

  <span style="font-size:18px;">      private void 文件ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("我响应了Click事件");
        }</span>

(3)选择ContenxMenuStrip控件,在设计时创建三个ToolStripMenu对象,它们的Text属性设置为“复制”,“剪切”,“粘贴”,将窗体的MainStrip属性设置为MenuStrip1,ContenxMenuStrip属性设置为ContenxMenuStrip1。

完整的窗体代码为:

<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void 文件ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("我响应了Click事件");
        }
    }
}
</span>

运行窗体的结果为:

右击窗体会出现有三个ToolStripMenu对象ContenxMenuStrip控件

二,ToolStrip控件

ToolStrip控件是由由System.Windows.Forms.ToolStrip类提供的,作用是创建易于自定义的常用工具栏,让这些工具栏支持高级用户界面和布局功能,如停靠,漂浮,带文本和图像的按钮及下拉按钮等。

ToolStrip控件的属性管理着控件的显示位置和显示方式,是MenuStrip控件的基础,ToolStrip控件常用的属性:

在ToolStrip可以使用许多控件:

实例:演示ToolStrip控件的使用

(1)在窗体上添加一个ToolStrip控件,鼠标单击图标后面的下拉箭头,选择Button,将在ToolStrip控件上添加一个ToolStripButton,重复上面的操作,分别选择Labelhe和DropDownButton,向ToolStrip控件添加ToolStripLabel和ToolStripDropDownButton。

(2)将ToolStripButton的Text属性设置为“保存”,将ToolStripLabel的Text属性设置为“字体”将ToolStripDropDownButton下面添加三项:添加,更改和删除。

(3)选择ToolStripButton,从事件面板中选择Click事件,加入提示代码:

       <span style="font-size:18px;"> private void toolStripButton1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("你点击了保存");
        }</span>

完整的窗体代码为:

<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("你点击了保存");
        }
    }
}</span>

运行窗体的结果为:

三,StatuStrip控件

StatuStrip控件是由由System.Windows.Forms.StatuStrip类提供的,作用是在应用程序中表示对话框底部的一栏,通常用于显示应用程序当前状态的简单信息。

在StatusStrip中可以使用ToolStrip中介绍的控件中的三个ToolStripDropDownButton,ToolStripProgressBar和ToolStripSplitButton。还有一个控件时StatusStrip专用的,即StatusStripStatusLabel,作用就是文本和图像向用户显示应用程序当前状态的信息。

实例:演示StatusStrip控件,用于提示TextBox控件中的总行数

(1)在窗体中加入一个TextBox控件,将其Multiline属性设置为true,设置其Size属性为268*231.

(2)向窗体中加入一个StatusStrip控件,加入同一个StatusStripStatusLabel控件,将其Text属性设置为空,双击TextBox控件生成TextChanged事件,在事件中添加在TextBox控件行显示光标的代码为:

       <span style="font-size:18px;">private void textBox1_TextChanged(object sender, EventArgs e)
        {
            statusStrip1.Items[0].Text = "行:"+textBox1.Lines.Length.ToString();
        }</span>

完整的窗体代码为:

<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            statusStrip1.Items[0].Text = "行:"+textBox1.Lines.Length.ToString();
        }
    }
}
</span>

向TextBox控件中输入一些东西,运行的结果为:

时间: 2024-10-12 15:46:29

Winform控件之菜单控件,工具栏控件和状态栏控件的相关文章

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

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

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

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

工具栏ToolStrip能触发焦点控件的Leave、Validating、DataError等事件以验证数据 z

public class ToolStripEx : ToolStrip { protected override void OnClick(EventArgs e) { base.OnClick(e); Form fm = FindForm(); if (fm != null) { fm.Validate(); } } } 之所以说几乎,是因为还是有一点不同,就是Form.Validate()并不会触发焦点控件的Leave事件,所以需要该事件的猿友恐怕还得继续沿用0尺寸Button法或另想他法

Winform状态栏控件中Label靠右显示的方法

设计器: 代码: 在Form_Load事件中添加 : statusStripMain.LayoutStyle= ToolStripLayoutStyle.HorizontalStackWithOverflow; lbl单位.Alignment = ToolStripItemAlignment.Right; lblCompany.Alignment = ToolStripItemAlignment.Right; lbl联系电话.Alignment = ToolStripItemAlignment.

FineUI Grid控件右键菜单的实现

FineUI官方Demo上一直没有Grid右键菜单的实现,其实从4.1.x的版本开始,允许添加自定义的事件监听(Listeners),所以要实现这个功能已经相当容易了. ExtJs右键菜单有很多种,对于Grid控件来说,我这里只简单说明两种实现.即在表格的数据行上右键单击时弹出的菜单,以及在空白位置右键单击时弹出的菜单. 时间有限,废话不多说了,先看两个效果图.(实现环境 FineUI4.1.6,.NET 4.0因为需要指定控件的ID) 1. 数据行右键菜单 2. 空白处右键菜单 实现方法: s

WPf 带滚动条WrapPanel 自动换行 和控件右键菜单

原文:WPf 带滚动条WrapPanel 自动换行 和控件右键菜单 技能点包括 WPf 样式的引用 数据的验证和绑定 比较适合初学者 前台: <Window.Resources> <local:PathToSource x:Key="n2"/> <Style x:Key="{x:Type ContextMenu}" TargetType="{x:Type ContextMenu}"> <Setter Pr

Android导航菜单横向左右滑动并和下方的控件实现联动

这个是美团网个人订单的效果,找了很多地方都没找到,自己研究了两天终于弄出来了^_^,有什么问题希望大家指出来,谢谢.   实现原理是上方使用HorizontalScrollView这个可以水平横向拖动的控件,在其中加入了5个RadioButton;下方使用的是ViewPager,里面加入了7个Layout文件,其中第一个和最后一个为空,是为了实现拖到第一个屏幕的时候还能往外拖动的效果.   先看下效果,切换都是带动画效果的,并且点击上面最右边的标签时会自动滚动出后面的标签. 现在看一下代码: J

五:理解控件的运行机制(例:基于Control命名空间的简单控件)

一:先用最简短的话说点理论的1.asp.net中所有的标准控件都可以重写 2.和控件相关的命名空间有 System.Web.UI.Control是所有控件的基类只提供简单的呈现逻辑,不支持样式表 System.Web.UI.WebControls.WebControl继承自Control支持控件外观 System.Web.UI.WebControls.CompositeControl继承自WebControl类派生出多个控件合成的复合控件 3.控件树的实现原理首先Page类本身就是一个控件,它继

C#在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级

首先在form1的窗体载入中新建了一个Class1对象并将本身的引用传递进入其构造函数,然后在Class1的构造函数中创建一个线程.该线程所代理的方法事件是本类中的一个add方法.而add方法的内容则是在form1上放一个textbox.然而这个流程你需要注意的有几个问题:1.哪个是主线程?所谓主线程是第一个启动的线程,是从main开始的.form1的这个窗体是由主线程创建的.2.Thread t的线程是什么?t是由主线程创建的,t的操作内容是在由主线程创建的窗体上放一个textbox.也就是说