在C#中轻松制作仿OutLook的界面
不知道从什么时候开始,许多软件都开始模仿OutLook界面,最典型的莫过于大家经常使用的QQ了,在网上搜索了好久,都没有找到几个满意的控件,干脆,自己写了一个,非常简单实用,特拿出来共享。
新建一个项目,不妨取名为MyOutLookFace吧,在上面放一个Panel控件用作容器,取名为:panFunMain,设置Dock属性为Left(或Righ),设置BorderStyle属性为Fixed3D,添加一个ImageList控件,设置其ImageSize为“32,32”,并添加几个图标给它。
在panFunMain中添加n个按钮(本例中n=3,用于显示有几组)和n个ListView控件(显示某组中具体内容),都用其默认的名字,注意ListView控件个数必须和按钮控件个数相同,都为n,设置各ListView控件的Lage imageList属性为刚才添加的ImageList控件,选中第一个ListView控件,在属性窗口中,选择items,并点右边的小按钮“,将弹出一个对话框,在这里添加几个成员,并指定Text属性和ImageIndex属性,同样,为第二、三个ListView指定Items成员。
为了实现自动隐藏,再添加一个计时器.
上面的插操作都是比较基本的,如不特殊说明,都使用其默认值,这里不再赘述。
本文最后还会提到播放声音的方法,为合理利用资源,必须修改文件输出路径,选择菜单“项目”→“属性”,会弹出如下一个对话框,在“配置(C)”后面的组合框中选择“所有配置”,然后设置“配置属性”的“生成”项,在右边的输出路径中填上“output/”,这样,无论是编译成release文件还是debug文件,输出的可执行文件都会放到当前项目中的output文件夹下(该文件会自动创建)。
至此,界面布置基本完成,切换到代码窗口,添加几个变量:
/// <summary>
/// 记录当前功能面板中用到的按钮
/// </summary>
private ArrayList ArrFunButton=new ArrayList();
/// <summary>
/// 记录当前功能面板中用到的listview
/// </summary>
private ArrayList ArrFunListView=new ArrayList();
/// <summary>
/// 功能面板的宽度
/// </summary>
private int m_nPanFunWidth=100;
//功能面板隐藏后的宽度
private int m_nPanFunHideWidth=2;
当我们单击一个按钮后,必须显示该按钮对应的ListView,并调整该按钮的位置,故手工写一个函数:
//功能按钮点击后的特效
private void btnFun_Click(object sender, System.EventArgs e)
{
Button btnNow=sender as Button;
if(btnNow==null)
return;