Windows Forms编程实战学习:第三章 菜单

第三章 菜单

1,控件和容器

所有的Windows Forms控件都是从System.Windows.Forms.Control类继承的,相关类的层次结构如下图所示:

MarshalByRefObject类表示必须通过引用进行列集(marshale)的对象。列集表示从一个上下文环境中传递一个数据项使它可以在另一个上下文环境中被理解的一种机制。只在创建它们的进程中有效,必须通过引用才能在进程外使用。

Component类为通过引用进行列集的对象提供了IComponent接口。组件是可以在容器中存在的对象,并且可以通过Dispose方法清理系统资源。

ButtonBase是所有按钮的基类,包括单选和复选按钮。

 

容器类:可以包含其他控件的控件称为容器控件。Control类本身提供了对容器的支持,例如Controls属性和GetNextControl方法。

 

Form类的层次结构

其中ScrollableControl提供了包含对象自滚动的功能。

ContainerControl类表示提供焦点管理的控件,提供了它所包含的控件集合的逻辑边界。这个类追踪容器中的活动控件,还负责管理容器中各个控件的Tab顺序。

 

Control类的常用属性、方法和事件

公共属性

AllowDrop

是否允许拖放

Anchor

锚定设置

BackColor

背景色

ContextMenuStrip

上下文菜单

Controls

控件所包含的控件

ClientRectangle

获取客户区域,DisplayRectangle获取控件的显示区域。

Cursor

鼠标出现在这个控件上所呈现的光标

Enabled

是否启用这个控件

Location

控件的位置

Parent

控件的父控件

TabIndex

Tab索引

TabStop

是否启动Tab

Text

控件关联的文本

Visible

是否可见

公共方法

BringToFront

使这个控件出现在Z序的最前边

GetNextControl

按照Tab顺序返回上一个或下一个控件

Invalidate

强制这个控件的全部或部分重绘

PointToClient

把一个屏幕位置转换为客户坐标

公共事件

Click

点击时发生

KeyPress

具有焦点且按下按钮时发生

MouseUp

鼠标光标位于控件内部时,释放一个按钮时发生

Paint

全部或部分重绘时发生

 

2,菜单

菜单一般分为传统菜单(主菜单或者锚定菜单)和上下文菜单(弹出菜单或者快捷菜单)。.Net中的上下文菜单一般与控件相关联。

ToolStrip:可滚动控件

MenuStrip:菜单

StatusStrip:状态栏

ContextMenuStrip:弹出式菜单

 

ToolStripMenuItem表示一个菜单项。MenuStrip和ContextMenuStrip对象是简单的容器。

ToolStripDropDownItem:

公共属性

Checked

是否在右边显示选中标记

CheckState

三态

Enabled

是否启用

Overflow

如何与重合的按钮进行交互,基于ToolStripItemOverflow枚举

ShortcutKeyDisplay_String

快捷键显示的字符串,若为空,显示为实际值。

ShortcutKeys

快捷键,基于Keys的枚举

ShowShortcutKeys

显示菜单是是否显示ShortcutKeys设置

公共事件

CheckedChanged

Checked属性变换

CheckStateChanged

CheckState状态变化

 

namespace chapter_3

{

partial class Form1

{

/// <summary>

/// 必需的设计器变量。

/// </summary>

private System.ComponentModel.IContainer components = null;

 

/// <summary>

/// 清理所有正在使用的资源。

/// </summary>

/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>

protected override void Dispose(bool disposing)

{

if (disposing && (components != null))

{

components.Dispose();

}

base.Dispose(disposing);

}

 

#region Windows 窗体设计器生成的代码

 

/// <summary>

/// 设计器支持所需的方法 - 不要

/// 使用代码编辑器修改此方法的内容。

/// </summary>

private void InitializeComponent()

{

this.menuStrip1 = new System.Windows.Forms.MenuStrip();

this.fileFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.loadLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.ExitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.menuStrip1.SuspendLayout();

this.SuspendLayout();

//

// menuStrip1

//

this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {

this.fileFToolStripMenuItem});

this.menuStrip1.Location = new System.Drawing.Point(0, 0);

this.menuStrip1.Name = "menuStrip1";

this.menuStrip1.Size = new System.Drawing.Size(284, 25);

this.menuStrip1.TabIndex = 0;

this.menuStrip1.Text = "menuStrip1";

//

// fileFToolStripMenuItem

//

this.fileFToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {

this.loadLToolStripMenuItem,

this.ExitToolStripMenuItem});

 

this.fileFToolStripMenuItem.Name = "fileFToolStripMenuItem";

this.fileFToolStripMenuItem.Size = new System.Drawing.Size(53, 21);

this.fileFToolStripMenuItem.Text = "File(&F)";

this.fileFToolStripMenuItem.Click += new System.EventHandler(this.fileFToolStripMenuItem_Click);

//

// loadLToolStripMenuItem

//

this.loadLToolStripMenuItem.Name = "loadLToolStripMenuItem";

this.loadLToolStripMenuItem.ShortcutKeyDisplayString = "";

this.loadLToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.L)));

this.loadLToolStripMenuItem.Size = new System.Drawing.Size(162, 22);

this.loadLToolStripMenuItem.Text = "Load(&L)";

this.loadLToolStripMenuItem.Click += new System.EventHandler(this.loadLToolStripMenuItem_Click);

//

// ExitToolStripMenuItem

//

this.ExitToolStripMenuItem.Name = "ExitToolStripMenuItem";

this.ExitToolStripMenuItem.Size = new System.Drawing.Size(162, 22);

this.ExitToolStripMenuItem.Text = "Exit(&Q)";

this.ExitToolStripMenuItem.Click += new System.EventHandler(this.ExitToolStripMenuItem_Click);

//

// Form1

//

this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

this.ClientSize = new System.Drawing.Size(284, 261);

this.Controls.Add(this.menuStrip1);

this.MainMenuStrip = this.menuStrip1;

this.Name = "Form1";

this.Text = "Form1";

this.menuStrip1.ResumeLayout(false);

this.menuStrip1.PerformLayout();

this.ResumeLayout(false);

this.PerformLayout();

 

}

 

#endregion

 

private System.Windows.Forms.MenuStrip menuStrip1;

private System.Windows.Forms.ToolStripMenuItem fileFToolStripMenuItem;

private System.Windows.Forms.ToolStripMenuItem loadLToolStripMenuItem;

private System.Windows.Forms.ToolStripMenuItem ExitToolStripMenuItem;

}

}

 

 

在顶层菜单中添加子菜单项,先创建ToolStripItem数组,然后用DropDownItem属性的AddRange方法添加到菜单中去。

 

ToolStripItem表示ToolStrip的一个项

公共属性

AllowDrop

重新排序和拖放操作是默认行为(false)还是自定义行为(true)

Alignment

与包含它的工具条起始还是末尾对齐

Anchor

如何粘附到容器的各个边缘

BackColor

背景色

ClientRectangle

内部绘制区域

DisplayStyle

定义是否为这个相显示文本,为ToolStripItemDisplayStyle枚举

Enabled

是否对用户交互做出响应

Image

所显示的图像

MergeAction

如何合并到一个目标工具条

Parent

父控件

Text

项相关联的文本

ToolTipText

提示文本,AutoToolTip设为true,使用Text设置提示文本

Visible

该项与子项是否可见

公共方法

Invalidate

全部或部分重绘

PerformClick

调用Click事件

公共事件

Click

点击

DragDrop

一个拖放操作完成时

MouseUp

位于项边界之内释放鼠标

Paint

绘制

 

ToolStripButton:显示一个按钮

ToolStripControlHost:几乎可以容纳所有的Forms控件。

ToolStripDropDownItem:下拉式菜单,ToolStripMenuItem是其子类。

 

原文地址:https://www.cnblogs.com/xyb930826/p/5303913.html