现在的位置: 首页 > 综合 > 正文

C# UI积累

2014年02月01日 ⁄ 综合 ⁄ 共 2053字 ⁄ 字号 评论关闭

做个积累,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中有属性:ShowInTaskBarbool类型

通过设置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

进行判断

抱歉!评论已关闭.