C#菜单分为主菜单和快捷菜单两种

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

菜单、工具栏、状态栏的设计

(一)菜单设计:

1、菜单是组织应用程序功能的一种方法,应用程序界面通常通过菜单来使用

程序的功能。

2、菜单分类:C#菜单分为主菜单和快捷菜单两种。

◆主菜单:标题栏下面显示的菜单。

◆快捷菜单:右击鼠标显示的菜单。

3、菜单类:

创建菜单使用的菜单类有:

◆主菜单类(MenuStrip类):创建主菜单

◆快捷菜单类(ContextMenuStrip类):创建快捷菜单

这些类都属于System.Windows.Forms命名空间

4、创建菜单的方法:

◆工具箱中的菜单控件直接编辑而成;(常用的方式)

◆由程序代码生成。(一般了解)

二、主菜单创建:

使用MenuStrip类

1、菜单控件使用方法:

(1)在窗体设计器界面从工具箱中拖至窗体一个MenuStrip控件,自动产生一个对象menuStrip1.

(2)选中menuStrip1,在窗体界面上出现的“请在此输入”的位置输入菜单项名(设Text属性),每输入一个,自动产生一个菜单项对象的。在属性窗口中可设置其名称(Name)属性。

(3)双击某个菜单项,自动转入代码编辑器窗口,手工编写该菜单项的Click 事件处理程序。

2、菜单项控件的常用属性及事件:

(1)Name:该菜单项对象的名字,可将默认的名字改名。

(2)Text:string型,该菜单项对象的标题文本,如“文件”、“编辑”

◆两个特殊值:

✧Text的值如果是“-”则菜单项为分隔符。

✧Text的值中如果出现“&”符号,则紧跟在后面的字母为访问键。(3)Enabled:bool型,设置菜单项是否可用。值为false,则该菜单项显示为灰色,表示不可用。(举例:如文本框中没选中文字,复制不能用)

(4)Checked:bool型,设置菜单项的文本前是否出现选中标记“√”

(5)ShortcutKeys:设置菜单项的快捷键。如:Ctrl+N(区分访问键和快捷键)

(6)Click事件:单击该菜单项对象时发生。每个菜单项都是一个控件,都响应一个事件过程。每次单击菜单项时,就会调用一个菜单项的单击事件过程。

例如:private void mnuExit_Click(object sender, EventArgs e)//"退出"菜单项

{

Application.Exit();

}

三、快捷菜单创建:

1、使用ContextMenuStrip类

(1)在窗体放置一个ContextMenuStrip控件,默认名称contextMenuStrip1 (2)选中contextMenuStrip1对象,通过菜单编辑器建立各菜单项(方法同主菜单中菜单项创建)

(3)编写每个菜单项的Click事件处理程序(快捷菜单中的菜单项一般都与主菜单项对应,在其Click事件处理程序中一般直接调用主菜单项的Click事件处理程序即可,不用重复输入代码)

(4)设置被弹出对象的ContextMenuStrip属性为contextMenuStrip1

实例:设计简单记事本程序,设计记事本程序的菜单和快捷菜单。

如图所示。主菜单项有:文件,编辑和格式三项。子菜单项分别包含如下图所示的菜单项。

编写部分菜单项及工具栏和状态栏的相应事件方法:

private void mnuFile_DropDownOpening(object sender, EventArgs e)//打开“文件”菜单项时

{

if (txtEdit.Text != "")

{

mnuFileNew.Enabled = true;//“新建”菜单项可用

mnuFileSave.Enabled = true;//“保存”菜单项可用

}

else

{

mnuFileNew.Enabled = false ;//“新建”菜单项不可用

mnuFileSave.Enabled = false ;//“保存”菜单项不可用

}

}

private void mnuUndo_Click(object sender, EventArgs e)//“撤消”菜单项

{

if (txtEdit.CanUndo == true)

{

txtEdit.Undo();//撤消上一次操作

txtEdit.ClearUndo();//清除缓冲区中有关撤消的信息

}

}

private void mnuCut_Click(object sender, EventArgs e)//“剪切”菜单项

{

if (txtEdit.SelectedText != "")

{

txtEdit.Cut();

}

}

private void mnuEdit_DropDownOpening(object sender, EventArgs e)//弹出"编辑"菜单时决定菜单项是否可用

{

if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text)) mnuPaste.Enabled = true;

else

mnuPaste.Enabled = false;

if (txtEdit.SelectionLength > 0)

{

mnuCut.Enabled = true;

mnuCopy.Enabled = true;

mnuDel.Enabled = true;

}

else

{

mnuCut.Enabled = true;

mnuCopy.Enabled = true;

mnuDel.Enabled = true;

}

if (txtEdit.CanUndo == true)

mnuUndo.Enabled = true;

else

mnuUndo.Enabled = false;

}

}

private void mnuExit_Click(object sender, EventArgs e)//"退出"菜单项 {

Application.Exit();

}

private void mnuCopy_Click(object sender, EventArgs e)//"复制"菜单项 {

if (txtEdit.SelectedText != "")

{

txtEdit.Copy();

}

}

private void mnuPaste_Click(object sender, EventArgs e)//"粘贴"菜单项

{

if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) == true)//剪切板中是否有文本

相关文档
最新文档