C#——控件
    
    
    
    前言
   
记录一些常用的,使用稍复杂的控件。(有时间就更新)
    
    
    一、TreeView(树状视图)
   
    示例:
    
    
    
    TreeView控件(树控件)可以为用户显示节点层次结构,每个节点又可以包含 子节点,包含子节点的节点叫父节点。就像在Windows操作系统的Windows资源管 理器功能的左窗口中显示文件和文件夹一样。
    
    最小单元就是节点。
   
    
    
    1.节点(TreeNode)
   
初始化:
namespace System.Windows.Forms
{
    public class TreeNode : MarshalByRefObject, ICloneable, ISerializable
    {
        //
        // 摘要:
        //     初始化 System.Windows.Forms.TreeNode 类的新实例。
        public TreeNode();
        //
        // 摘要:
        //     用指定的标签文本初始化 System.Windows.Forms.TreeNode 类的新实例。
        //
        // 参数:
        //   text:
        //     新的树节点的标签 System.Windows.Forms.TreeNode.Text。
        public TreeNode(string text);
        //
        // 摘要:
        //     用指定的标签文本和子树节点初始化 System.Windows.Forms.TreeNode 类的新实例。
        //
        // 参数:
        //   text:
        //     新的树节点的标签 System.Windows.Forms.TreeNode.Text。
        //
        //   children:
        //     子级 System.Windows.Forms.TreeNode 对象的数组。
        public TreeNode(string text, TreeNode[] children);
        //
        // 摘要:
        //     用指定的标签文本以及树节点处于选定和未选定状态时所显示的图像来初始化 System.Windows.Forms.TreeNode 类的新实例。
        //
        // 参数:
        //   text:
        //     新的树节点的标签 System.Windows.Forms.TreeNode.Text。
        //
        //   imageIndex:
        //     在取消选定树节点时显示的 System.Drawing.Image 的索引值。
        //
        //   selectedImageIndex:
        //     在选择树节点时显示的 System.Drawing.Image 的索引值。
        public TreeNode(string text, int imageIndex, int selectedImageIndex);
        //
        // 摘要:
        //     用指定的标签文本、子树节点以及树节点处于选定和未选定状态时所显示的图像来初始化 System.Windows.Forms.TreeNode 类的新实例。
        //
        // 参数:
        //   text:
        //     新的树节点的标签 System.Windows.Forms.TreeNode.Text。
        //
        //   imageIndex:
        //     在取消选定树节点时显示的 System.Drawing.Image 的索引值。
        //
        //   selectedImageIndex:
        //     在选择树节点时显示的 System.Drawing.Image 的索引值。
        //
        //   children:
        //     子级 System.Windows.Forms.TreeNode 对象的数组。
        public TreeNode(string text, int imageIndex, int selectedImageIndex, TreeNode[] children);
     
    }
    
    
    2.节点的添加
   
使用TreeView或TreeNode的Nodes的Add方法;
            TreeNode tn = new TreeNode("1班");
            TreeNode tnn = new TreeNode("小明");
            tn.Nodes.Add(tnn);
    
    
    3.节点的移除
   
1)使用TreeView或TreeNode的Nodes的Remove方法;
public class TreeNodeCollection : IList, ICollection, IEnumerable
{
        //
        // 摘要:
        //     从树节点集合中移除指定的树节点。
        //
        // 参数:
        //   node:
        //     要移除的 System.Windows.Forms.TreeNode。
        public void Remove(TreeNode node);
}
            tn.Nodes.Remove(tnn);
    
    
    2)使用TreeNode自带的Remove方法;
   
    public class TreeNode : MarshalByRefObject, ICloneable, ISerializable
    {
        //
        // 摘要:
        //     从树视图控件中移除当前树节点。
        public void Remove();
    }
            tnn.Remove();
效果一样。
    
    
    3.节点设置图标
   
    TreeView控件可在每个节点旁显示图标。图标紧挨着节点文本的左侧。若要显示这些图标,必须使树 视图与ImageList控件相关联。为TreeView控件中的节点设置图标的步骤如下。
    
    (1)设置TreeView控件的ImageList属性为想要使用的现有ImageList控件。
    
    (2)设置节点的ImageIndex和SelectedImageIndex属性,ImageIndex属性确定正常和展开状态下的节点 显示的图像,SelectedImageIndex属性确定选定状态下的节点显示的图像。(在此仅设置了ImageIndex)
   
    
     需要注意的是,节点设置了图标若其子节点不单独设置图标,则子节点图标将默认与节点相同。
    
    
     
   
        private void Form1_Load(object sender, EventArgs e)
        {
            imageList1.Images.Add(Image.FromFile(@"C:\Users\ZDH-XMXT-257\Downloads\1.jpeg"));
            imageList1.Images.Add(Image.FromFile(@"C:\Users\ZDH-XMXT-257\Downloads\2.jpeg"));
            treeView1.ImageList = imageList1;
            TreeNode tn = new TreeNode("1班");
            tn.ImageIndex = 0;
            treeView1.Nodes.Add(tn);
            TreeNode tnn = new TreeNode("小明");
            tnn.ImageIndex = 1;
            tn.Nodes.Add(tnn);
        }
     
   
    
    
    4.获取树控件中选中的节点
   
可以在控件的AfterSelect事件中,使用EventArgs对象返回对已单击节点对象的引用。通过检查 TreeViewEventArgs类(它包含与事件有关的数据),确定单击了哪个节点。下面通过实例演示如何在 AfterSelect事件中获取控件中选中节点显示的文本。
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            label1.Text = e.Node.Text;
        }
     
   
    
     PS:在用TreeView控件对各磁盘的文件进行显示时,可以通过该控件的SelectedNode的FullPath属性获取 当前所选择节点(文件或文件夹)的目录,需要将该控件的PathSeparator属性值设为“\”。
    
   
    
    
    二.DateTimePicker(日期控件)
   
    DateTimePicker控件(日期控件)用于选择日期和时间,DateTimePicker控 件只能选择一个时间,而不是连续的时间段,也可以直接输入日期和时间。
    
     
   
    
    
    1.显示设置
   
Format属性用于获取或设置控件中显示 的日期和时间格式。
    public class DateTimePicker : Control
    {
        //
        // 摘要:
        //     获取或设置控件中显示的日期和时间格式。
        //
        // 返回结果:
        //     System.Windows.Forms.DateTimePickerFormat 值之一。 默认值为 System.Windows.Forms.DateTimePickerFormat.Long。
        //
        // 异常:
        //   T:System.ComponentModel.InvalidEnumArgumentException:
        //     分配的值不是 System.Windows.Forms.DateTimePickerFormat 值之一。
        public DateTimePickerFormat Format { get; set; }
    }
DateTimePickerFormat 枚举类:
| 枚举值 | 说明 | 表现 | 
|---|---|---|
| Long | 控件以用户操作系统设置的长日期格式显示日期/时间值。 |   | 
| Short | 控件以用户操作系统设置的短日期格式显示日期/时间值。 |   | 
| Time | 控件以用户操作系统设置的时间格式显示日期/时间值。 |   | 
| Custom | 控件以自定义格式显示日期/时间值。 | 自定义格式 | 
    
     与CustomFormat属性配合实现自定义显示(Format属性必须设置为DateTimePickerFormat.Custom,才能影响显示的日期和时间的格式设置。)
    
    
    格式化说明如下:
    
    
    
    案例代码:
   
        private void Form1_Load(object sender, EventArgs e)
        {
            dateTimePicker1.Format = DateTimePickerFormat.Custom;
            dateTimePicker1.CustomFormat = "tt sss:mm:HH dd-MM-yyyy";//倒序显示
		}
     
   
    
    
    2.选定日期
   
    
    
    右侧按钮可以打开选择日期界面,数据将以DateTime类型保存在dateTimePicker.Value中。
   
    
    
    3.代码中获取日期
   
    dateTimePicker.Value为DateTime类型。
    
    代码:
   
        private void button1_Click(object sender, EventArgs e)
        {
            label2.Text =  dateTimePicker1.Value.ToString();
        }
     
   
    
     .ToString()转换的格式也可以通过格式化自定义显示,默认的格式如上图。
    
   
 
