C# Windows窗體應用 之 控件彙總(第二篇)

前言:
本篇都是Windows窗體應用常用控件的介紹,通過效果圖和相關屬性事件總結,其實每個控件很多的屬性都是差不多的,所有我們通過效果圖基本上可以猜出這個控件有哪些屬性方法了,當需要使用哪一個控件時,可以看一下相關列子就OK的。

一、菜單 MenuStrip

將MenuStrip控件拖放到窗體上,即可在窗體頂部(標題欄下方)創建一個菜單欄, MenuStrip控件同時會出現在組件架中。
在這裏插入圖片描述


二、月曆 MonthCalendar

在這裏插入圖片描述
常用屬性:

屬性 說明
FirstDayOfWeek 設置日曆中每一週第一個顯示的日期
MaxDate 可以選擇的最後一個日期
MaxSelectionCount 可以一次選擇的最多天數
MinDate 可以選擇的第一個日期
MonthlyBoldedDates 日曆中以粗體顯示的一個日期數組
SelectionEnd 用戶選擇的最後一個日期
SelectionRange 用戶選擇的日期
SelectionStart 用戶選擇的第一個日期

常用事件:

事件 說明
DateChanged 當選中了日曆中的某個日期時,會產生這個事件

三、日曆 DateTimePicker

DateTimePicker控件與MonthCalendar控件類似,但它在選擇向下箭頭時纔會顯示日曆。
在這裏插入圖片描述
常用屬性:

屬性 說明
CalendarForeColor 設置日曆文本顏色
CalendarMonthBackground 設置日曆的背景色
CustomFormat 設置用戶選項的定製格式字符串
Format 設置用戶選項的日期或時間格式
MaxDate 可以選擇的最大日期和時間
MinDate 可以選擇的最小日期和時間
ShowCheckBox 表明是否應在所選日期和時間的左邊顯示覆選框
ShowUpDown 表示控件是否應顯示向上和向下的按鈕
Value 用戶選擇的數據

Format屬性可指定用戶的選擇選項
Long: Thursday, July 10, 2010
Short: 7/10/2010
Time: 5:31:02 PM
Custom: 用戶自定義格式

常用事件:

事件 說明
ValueChanged Value屬性發生變化時產生這個事件

四、超鏈接 LinkLabel

在這裏插入圖片描述
在這裏插入圖片描述
常用屬性:

屬性 說明
ActiveLinkColor 指定用戶單擊鏈接時的顏色
LinkArea 指定LinkLabel中哪一部分的文本爲鏈接
LinkBehavior 指定鏈接的行爲,比如當鼠標放置其上時鏈接如何出現
LinkColor 指定單擊前鏈接的顏色
LinkVisited 如果爲true,則鏈接表現爲已被訪問過
Text 指定這個控件的文本
UseMnemonic 如果爲true,則在Text屬性中的&字符充當快捷鍵
VisitedLinkColor 指定訪問過的鏈接的顏色

常用事件:

事件 說明
LinkClicked 單擊鏈接時產生,配合Process類的Start方法

五、列表框 ListBox

在這裏插入圖片描述
常用屬性:

屬性 說明
Items ListBox中的項目集合
MultiColumn 表示能否顯示多列
SelectedIndex 返回所選項目的索引
SelectedIndices 返回包含全部所選項目索引的一個集合
SelectedItem 返回所選項目的引用
SelectedItems 返回所選項目的集合
SelectionMode 確定能夠被選中的項目數以及多個項目被選中的方法
Sorted 表示項目是否按字母順序排序

常用事件:

事件 說明
SelectedIndexChanged 當所選項目的索引發生變化時產生

六、CheckedListBox控件

CheckedListBox控件是從ListBox類派生的,它會在每個項目旁邊加一個複選框


七、ComboBox控件

如果清單包含的元素多於下拉清單能顯示的個數,則會出現滾動條,下拉清單一次可以顯示的最大項目數由MaxDropDownItems屬性確定
在這裏插入圖片描述

常用屬性:

屬性 說明
DropDownStyle 確定ComboBox的類型(3種類型)
Items ComboBox控件中的項目集合
MaxDropDownItems 指定下拉清單能夠顯示的最大項目數
SelectedIndex 返回所選項目的索引
SelectedItem 返回所選項目的引用
Sorted 按字母排序

常用事件:

事件 說明
SelectedIndexChanged 當所選索引發生改變時產生

八、TabControl 控件

TabContrl控件可創建標籤化窗口
在這裏插入圖片描述
常用屬性:

屬性 說明
ImageList 指定在標籤上顯示的圖像
ItemSize 指定標籤的大小
Multiline 表明是否能將標籤顯示成多行
SelectedIndex 所選TabPage的索引
SelectedTab 被選中的TabPage
TabCount 返回標籤頁面的數量
TabPages 返回TabControl內的TabPages集合

常用事件:

事件 說明
SelectedIndexChanged 當SelectedIndex變化時產生

九、TreeView 控件(重要)

TreeView控件用樹顯示節點層次。
例如:頂級目錄是根(C:),C盤下的每個子目錄都是子節點,而每個子目錄又都有自己的子節點

TreeView屬性 說明
CheckBoxes 表示節點旁邊是否出現複選框
ImageList 指定一個包含節點圖標的ImageList對象。ImageList對象是一個包含Image對象的集合
Nodes 將控件中的TreeNode集合作爲TreeNodeCollection返回
SelectedNode 被選中的節點

常用事件:

TreeView事件 說明
AfterSelect 當所選節點發生變化時產生

TreeNode屬性和方法:

TreeNode屬性 說明
Checked 表示是否選中了TreeNode
FirstNode 指定Nodes集合衆的第一個節點
FullPath 節點從數根開始的路徑
ImageIndex 當去選一個節點時,指定TreeView的ImageList中要顯示的圖像的索引
LastNode 指定Nodes集合中的最後一個節點
NextNode 下一個同胞節點
Nodes 包含在當前節點中的TreeNode集合
PrevNode 前一個同胞節點
SelectedImageIndex 當選擇一個節點時,指定TreeView的ImageList中要顯示的圖像的索引
Text 指定TreeNode的文本
TreeNode方法 說明
Collapse 加載時縮合節點
Expand 展開節點
ExpandAll 展開節點的所有子節點
GetNodeCount 返回子節點個數

操作:實現本機文件目錄

在這裏插入圖片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace TreeView 控件
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void enterButton_Click(object sender, EventArgs e)
        {
            directoryTreeView.Nodes.Clear();// 每次確定時需要刷新內容
            string inputText = inputTextBox.Text; // 獲得輸入框的內容
            // 文件路徑存在
            if (Directory.Exists(inputText))
            {
                TreeNode rootNode = new TreeNode(inputText); // 創建樹節點
                directoryTreeView.Nodes.Add(rootNode); // 加入視圖
                FindDirectory(inputText, rootNode);  //通過遞歸函數進行目錄的遍歷
            }
            // 文件路徑不存在
            else
            {
                MessageBox.Show("輸入目錄不存在!!!");
                inputTextBox.Clear(); // 當文件目錄不存在時清空控件內容
                directoryTreeView.Nodes.Clear();
            }
        }

        // 遞歸函數 遍歷當前目錄
        void FindDirectory(string nowDirectory, TreeNode parentNode)
        {
            try  // 當文件目錄不可訪問時,需要捕獲異常
            {
                // 獲取當前目錄下的所有文件夾數組
                string[] directoryArray = Directory.GetDirectories(nowDirectory);
                if (directoryArray.Length > 0)
                {
                    foreach (string item in directoryArray)
                    {
                        // 遍歷數組,將節點添加到父親節點的
                        string str = Path.GetFileNameWithoutExtension(item);
                        TreeNode node = new TreeNode(str);
                        parentNode.Nodes.Add(node);
                        FindDirectory(item, node);
                    }
                }
            }
            catch (Exception)
            {
                parentNode.Nodes.Add("禁止訪問");
            }
        }
    }
}

學習如逆水行舟,不進則退!!!

歡迎關注微信公衆號:碼農雲庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章