做个积累,MFC原先也有,结果丢了。
(1)添加鼠标右键弹出菜单
1>在“菜单和工具栏”中选择"ContextMenuStrip"(比较奇怪,为什么不直接叫ContextMenu就好,还加个条?)
注意:"ContextMenuStrip"是一个组件,刚开始并不显示
2>在需要显示右键弹出菜单的容器与创建的"ContextMenuStrip"进行绑定
一般的容器都有属性"ContextMenuStrip",将该属性指向刚创建的右键菜单即可
3>不同的容器可以设置不同的右键弹出菜单选项
4>增加菜单项的"Click"事件,从而使得选中该菜单项时有所动作。
(2)打开文件/保存文件对话框
FileDialog是一个抽象基类,用于封装文件对话框(包括 OpenFileDialog 和 SaveFileDialog)的通用功能。
1> OpenFileDialog类对象表示一个通用对话框,用户可以使用此对话框来指定一个或多个要打开的文件的文件名。
它会弹出一个对话框,供用户选择可以打开的文件
使用方法ShowDialog()可以打开该对话框;
使用对话框属性FileName可以获得选中的文件路径;
使用属性SafeFileName可以获得选中的文件名;
使用方法OpenFile()可以为用户使用 OpenFileDialog 选定的文件打开只读流;
相对应的有:OpenFiles()方法,FileNames属性,SafeFileNames属性
示例代码:
//打开文件对话框 OpenFileDialog fileDlg=new OpenFileDialog(); fileDlg.ShowDialog(); //显示打开的文件名 MessageBox.Show(fileDlg.SafeFileName);
2>SaveFileDialog类对象
跟OpenFileDialog类似
(3)在系统通知区域中显示图标
在C#中,有相应的NotifyIcon组件,用以控制程序在系统通知区域中的显示
使用命名空间:System.Windows.Forms和System.Drawing
通过设置该类组件对象的属性(最关键的应该是Icon和Visible属性),以在系统通知区域中显示对应的Icon图标
属性说明:
Icon:指定出现在通知区域中的图标(System.Drawing.Icon型),包括文件名称和文件大小;
Text:当鼠标移动到显示图标上时出现的名称;
Visible:设定图标是否显示在通知区域,当Visible(bool型)为true时,在系统通知区域中显示;为false时,在系统通知区域中不显示;
补充:
系统通知区域是在系统工具栏最右侧的部分区域,如下图:
(4)在任务栏中显示图标
在System.Windows.Form中有属性:ShowInTaskBar(bool类型)
通过设置Form的ShowInTaskBar属性,可设置窗体是否在任务栏中进行显示或隐藏
form1.ShowInTaskBar=true; 则在任务栏中进行显示;
form1.ShowInTaskBar=false; 则在任务栏中不显示;
注意:默认情况下,该属性的取值为true,即在任务栏中进行显示。
(5)打开颜色对话框
ColorDialog表示一个通用对话框,该对话框显示可用的颜色以及允许用户自定义颜色的控件。
命名空间:System.Windows.Forms
使用方法ShowDialog()来显示对话框;
使用属性Color可以获取选择或自定义的颜色
实例代码如下:
if (MyDialog.ShowDialog() == DialogResult.OK) textBox1.ForeColor = MyDialog.Color;
(6)使窗口置顶
适用状况:在窗口最小化之后,双击通知区域中的NotifyIcon图标,使窗口置顶或不置顶
使用属性TopLevel(bool型)用来控制窗口是否置顶
为实现上述的功能,代码如下:
if (this.TopLevel == true) this.TopLevel = false; else this.TopLevel = true;
(7)判断键盘敲击是否为回车
例如在文本输入框中,需要以回车作为输入是否终止的判断
总共有三种类型的键位信息:int型,key型,char型
其中:int型和char型都可以用13进行判断,而Key则可以用Keys枚举类型中的Enter进行判断;
键盘敲击时,会发生KeyDown/KeyPress事件,事件参数为:(object sender, KeyPressEventArgs e)
其中:参数sender指出事件发生的对象,在本例中为文本框;参数e指出事件的具体信息,如哪个键被Press
通过参数e.KeyChar可以知道键盘对应的键位被敲击
代码如下:
if (e.KeyChar == 13) { ...}
在某些情况下,e中不包含KeyChar,而是包含诸如:KeyCode,KeyValue等信息
有些使用代码:
KeyCode==Keys.Enter
进行判断