Winfrom 常用控件(二)

1.视图控件

1.1 使用列表视图控件(ListView)

该控件用列表的形式显示一租数据,每条数据作为一项,用户可以选择其中的一项或多项。

例如,Windows 资源管理器右边的面板就是一个列表视图,资源管理器的列表视图主要显示选项有缩略图、平铺、图标、列表详细信息。这些对于列表视图空控件的 View(视图)属性各个值。

View属性的显示模式

• LargeIcon (大图标):每条数据都用一个带有文本的大图标显示。

• SmallIcon(小图标) :每条数据都用一个带有文本的小图标显示。

• List (列表):提供 ListItems 视图。

• Details(详细列表) :每条数据由多个字段组成,每个字段占一列。

列表是常见且功能强大的控件,通常用来显示对数据库的查询结果。

创建一个 Windows  窗体程序,从工具箱中添加 ListView 控件和 ImageList 控件到窗体中。在 属性 窗口选择视图列表框的 SmallImageList 属性,从下拉列表框中选择 ImageList 附加到控件上。

列表视图控件允许链接到两个 ImageList  控件。一个用于大图像(32×32像素)通过 LargeImageList 属性设置,一个用小图标(16×16像素)通过 SmallImageList 属性设置。ImageList  中 ImageSize  属性默认是(16×16)的小图标。

将 View 属性改为 Details 时,控件顶部将出现一个新的表头。表头的内容由 Columns 集合中所定义的列决定。

在视图控件中创建列

(1)选中列表视图控件后,在 属性 窗口中选择 View 属性,从下拉列表框中选择 Details 项,然后选择 Columns 属性,单击后面的 生成 按钮。将显示 ColumnsHeader 集合编辑器 窗口。

(2)单击 添加 按钮,创建一个新的表头(默认显示为columnsHeader 1),并将其  Text 属性改为 Name。


(3)再单击 添加 按钮,创建第二列,将其 Text 属性改为 Telephone。单击 确定 按钮,保存设置,列表框有两个命名的列。如图二。

(4)在 列表视图 属性 窗口中选择 Items 属性,然后单击出现的 生成  按钮 将显示 ListViewItems集合编辑器 对话框。单击 添加 按钮出现一个新项,将其  Text  属性改为张三

(5)打开 ImageKey 属性的下拉列表。注意列表中包含了所链接的图片列表框控件中的图片。在 ListViewItem集合编辑器 对话框中,选择 SubItems 属性,然后单击出现的 生成 按钮,将弹出 ListViewItem 集合编辑器 对话框


(6)单击 添加 按钮 创建一个新的子元素,并将其 Text 设为 12345678.单击确定 按钮 返回到上一个页面,再点击确定 关闭编辑器。然后按下F5 运行项目,其效果如图。


在 ListViewItem 编辑器对话框中,元素的 Text  属性决定了元素在列表视图框中所显示的文本。如果 View 属性设置为 Details 且定义了多列,则 Text   属性值出现在第一列。之后的值由 SubItems  集合决定。

1.2 树视图控件(TreeView)

该控件可以为用户显示节点层次结构,就像在 windows 操作系统的 windows  资源管理器功能的左窗格中现实的文件和文件夹一样,树视图中有个节点(Nodes)可以包含其他节点,把这些节点称为“子节点”,同样,“子节点”也可以有自己的“子节点”,可以让所有节点以复选框的形式显示,只需要设置树视图的 CheckBoxes 属性即可。

TreeView 控件的属性:

• CheckBoxes :控制节点旁是否显示复选框,默认不显示。

• ImageIndex :用来设置树视图中节点前的默认图像。

• ImageList :所使用的图像对象的图片列表框

• LabelEdit :是否可以对显示的节点文本进行编辑,默认不可编辑。

• Nodes :包含树视图中第一级的节点列表,就像视图列表框(ListView)中的元素存储在 Items 集合中一样。

• SelectedNode :表示当前选中的树节点,一般在编程中常用。

• Dock :定义要绑定容器的控件边框。

树视图最常用的事件是 AfterSelect,该事件发生在选择树视图中的节点后,树视图控件有很多属性、事件和列表视图控件类似。

创建一个窗体程序

(1)建好程序后在窗体中加一个 TreeView 控件,在属性窗口中设置控件的 Dock 属性为Left,表示设置 TreeView 控件在窗体的左边停靠,高度随窗体改变而改变。

(2)在窗体上添加一个文本框,设置 Multiline 属性为 True,表示文本框可以显示多行,设置Dock 属性为 Fall,表示文本框将占满窗体剩余空间,使用文本框的目的是显示用户所选的文件夹名。

(3)在窗体加载事件中显示本地磁盘,并且可以查看所有文件。


代码19到23行是窗体加载事件,其中第21行定义“我的电脑”节点作为树的总结点。代码第49行到53行是节点的选择事件,其中,在第51行调用自定义方法 TreeViewShow(),显示子文件夹。第52行提示用户选择节点文件夹信息。运行程序,结果


要删除节点,调用Nodes 集合的 Remove() 方法。Remove()方法接受一个有效的节点作为参数,因此必须指定要删除哪个节点。删除当前选中的节点

 treeView1.Nodes.Remove(treeView1.SelectedNode);  //删除当前选中的节点

如果在没有选择节点的情况下调用此语句,那么将会产生错误,因为如果对象变量没有引用对象,其等价于关键字 Nothing。这样,可以在调用前加个判断语句。

   if(!(treeView1.SelectedNode==null))
    {
         treeView1.Nodes.Remove(treeView1.SelectedNode);

    }

删除父节点的同时,将会删除其下所有子节点。要清除树视图中的所有节点,调用 Nodes 集合的 Clear()方法即可。

treeView1.Nodes.Clear();

2.自定义控件

2.1.自定义控件概述

Windows 窗体支持3中方法开发的自定义控件,即从 Windows  窗体控件继承、从 UserControl 继承和从 Control 类继承。

• 从 Windows  窗体控件继承:开发人员可以从现有的Windows 窗体控件继承出新的控件,保留了 Windows 窗体控件的所有功能,然后根据实际的需要来添加自定义属性、方法或事件来扩展这些功能。

• 从 UserControl 类继承:UserControl 是用户控件,又是被称作复合控件。当需要将若干个控件的功能合成一个新控件时,可以 UserControl 类继承 。可以从 Visual Studio 的新建项目对话框中选择 “”Windows  控件库“”进行创建。

• 从 Control 类继承:所有的控件类都继承 Control 类。当然,编程人员也可以从 Control 类继承,创建一个新控件。需要注意的是 ,Control 类提供了控件所需的所有基本功能,但不提供控件特定的功能。 

2.2 创建自定义控件

(1)创建一个新的项目,该项目类型为“Windows  窗体控件库”,将其命名为 CustomControlDemo 。


(2)创建完项目后,会自动生成一个 UserControl1.cs 的自定义控件,即控件设计器。


(3)在其设计视图下,添加两个Lable 控件、两个TextBox 控件和一个 Button 按钮控件,5个按钮属性如下:

控件属性
Lable1NamelblUser
 Text用户名:
Lable2Namelblpwd
 Text密码:
TextBox 1NametxtUser
TextBox 2Nametxtpwd
ButtonNamebtnOK
 Text登陆
   

双击 Button 按钮添加事件



“生成”命令,完成该控制项目的编译,再创建一个 Windows 项目,将项目的名称命名为 UserControlTest ,用于天加该控件。此定义控件位于工具箱上部,将定义好的控件拖拽至新建项目的窗体上,将新建的程序设为启动项目。运行该项目。

   

运行程序后,在用户名和密码文本框中填上设计程序时的默认值,即 admin和123456。然后单击 登陆 按钮 弹出对话框,提示登陆成功,说明自定义控件创建成功。


 生活就像是老天对弈,对你而言,你走棋那叫选择;老天走棋,那叫挑战。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值