1. 程式人生 > >Windows窗體與控制元件

Windows窗體與控制元件

學習下Window的窗體與控制元件,UI,我的IDE是VS2012,通過學習這些基本控制元件,如果以後要用到別的控制元件,就能夠較快上手。

Windows窗體

窗體是應用程式的基本單元,是非常重要的。它實質上是一塊白板,通過新增控制元件可以建立使用者介面,並通過程式碼來操作資料,填充這個白板。

建立窗體

  • 啟動VS2012
  • 檔案->新建->專案
  • 選擇Windows窗體應用程式,名稱,路徑自己填
    這裡寫圖片描述
  • 接下來就可以看到窗體已經建好了
    上面的方法是在新建一個程式時加入的窗體,有的程式需要的不止一個窗體,如果需要多個窗體,操作是:選中專案->右鍵->新增->新增窗體

    這裡寫圖片描述
    然後自己選擇窗體的名稱就行。

更改窗體屬性

選中要修改的窗體,開啟屬性視窗,找到對應的專案,修改就可以了
這裡寫圖片描述

Windows窗體控制元件

常用的控制元件,包括普通控制元件,對話方塊,選單,工具欄,元件等。微軟官方文件

控制元件的基本操作

在設計和修改時,要新增、對齊和定位控制元件。每種控制元件都有自己的屬性集、方法和時間,以使控制元件適用於特定用途。

新增或者刪除控制元件

使用者介面設計階段

檢視->工具箱,開啟工具箱,選擇適當的選項卡,找到需要的控制元件
- 將所需要的控制元件拖動到窗體的空白處
- 雙擊所需控制元件新增事件
刪除一個控制元件:選中該控制元件然後按Delete鍵

執行時新增刪除控制元件控制元件

應用程式在開發過程中的常見任務在窗體上的任何容器控制元件上新增控制元件或者移除控制元件(如Panel或者GroupBox控制元件,甚至窗體自身)。在執行時,這些控制元件維護了一個Controls集合,該集合記錄在其中放置了哪些控制元件。
新增主要步驟:
- 建立要新增的控制元件例項;
- 設定控制元件的屬性;
- 將控制元件新增到父控制元件的Controls集合。

private void button1_Click(object sender, EventArgs e)
{
    public Button bt = new Button();
    bt.Text = "新建的Button"
; this.Controls.Add(bt); }

刪除主要步驟
- 從事件中移除事件處理程式
- 使用Remove方法,從父控制元件的Controls集合中刪除需要刪除的控制元件
- 呼叫Dispose方法,釋放該控制元件佔用的資源

private void button2_Click(object sender, EventArgs e)
{
   if (this.Controls.Contains(bt)) {
       this.Click -= new System.EventHandler(this.button1_Click);
       this.Controls.Remove(bt);
       bt.Dispose();
   }
}

定位控制元件

使用窗體設計器拖動或者指定Location屬性值來進行定位
- 單擊要定位的控制元件
- 在“屬性”視窗中,輸入Location屬性值(用逗號分隔),以便在視窗內定位該控制元件

命令控制元件

Button

使用者單擊時,呼叫Click事件處理程式。可以將程式碼放入Click事件處理程式來執行所選的操作,按鈕上的文字包含在Text屬性中。

LinkLabel

通過這個控制元件可以向窗體中新增Web樣式的連結。一切可以使用Label的地方都可以使用LinkLabel,還可以將文字的一部分設定為指向某個檔案,資料夾或者網頁的連結。

NotifyIcon元件

NotifyIcon元件用於顯示在後臺執行的程序的圖示,這些程序大部分時間不顯示使用者介面。通過單擊工作列狀態通知區域的圖示來訪問防毒軟體或者音樂播放器就是具體的例子
其關鍵屬性有兩個,是Icon和Visible。Icon屬性出現在狀態區域的圖示,為使圖標出現,Visible必須設定為true

設定選項控制元件

複選框、單選按鈕、等

CheckBox控制元件和RadioButton控制元件

CheckBox指示某個特定條件是處於開啟狀態還是處於關閉狀態。他常用為使用者提供是/否或者真/假選項,可以成組使用複選框控制元件以顯示多重選項使用者可以從中選擇一項或者多項。
複選框可以使用簡單資料繫結連線到資料庫中的元素。多個複選框可以使用GroupBox進行分組
RadioButton為使用者提供有兩個或者多個互斥選項組成的選項集。當用戶選擇某單選按鈕時,同一組中的其他單選按鈕不能同時選定

TrackBar控制元件

該控制元件用於大量資訊中進行瀏覽,或者用於以可視的形式調整數字設定。其有兩部分:滾動塊和刻度線。
關鍵屬性有:
- Vakue
- TickFrequency
- Minimun控制元件
- Maximum控制元件

列表選擇控制元件

Windows窗體列表選擇控制元件主要包括ListBox控制元件,CheckedBox控制元件和ComboBox控制元件。

ComboBox控制元件和ListBox控制元件

用於在下拉組合框中現實資料,預設情況下,其分兩個部分,頂部是允許使用者輸入列表項的文字框;第二部分是一個列表框,現實一個項列表,使用者可以從中選擇一項。
使用者通過控制元件的SelectedIndex屬性返回一個整數值,該值與選擇的列表項相對應。通過改變SelectedIndex可以改變選擇項,未選擇任何項,SelectedIndex將返回-1。SelectedItem和SelectedIndex類似,但是它返回選中項,一般情況為一個字串。
增加刪除項,使用Add,Insert,Clear,Remove等方法。
ListBox控制元件和Combo控制元件類似

CheckedListBox控制元件

在ListBox控制元件上增加了列表項旁邊顯示覆選標記

TreeView控制元件

該控制元件可以為使用者顯示節點層次結構,就像Windows資源管理器一樣,還可以展開和摺疊。

編輯文字控制元件

  • TextBox控制元件
  • RichTextBox控制元件
  • MaskedTextBox控制元件

顯示資訊控制元件

  • Label
  • StatusStrip
  • ProgressBar

日期選擇控制元件

  • DateTimePicker
  • MonthCalendar

影象控制元件

  • PictureBox
  • ImageList

容器元件

  • Panel
  • GroupBox 可以將多個控制元件放在一個分組裡面
  • TabControl 顯示多個選項卡
  • SplitContainer 由多個可以移動的拆分條分隔的兩個面板
  • TableLayoutPanel控制元件

對話方塊控制元件

  • ColorDialog控制元件
  • FontDialog
  • OpenFileDialog
  • SaveFileDialog
  • FolderBrowserDialog
private void ColorDialog_Click(object sender, EventArgs e)
{
    ColorDialog cd = new ColorDialog();
    cd.ShowDialog();
    ColorDialog.BackColor = cd.Color;
}

private void FontDialog_Click(object sender, EventArgs e)
{
    FontDialog fd = new FontDialog();
    fd.ShowDialog();
    FontDialog.Font = fd.Font;
}

private void OpenFileDialog_Click(object sender, EventArgs e)
{
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.ShowDialog();
}

private void SaveFileDialog_Click(object sender, EventArgs e)
{
    SaveFileDialog sfd = new SaveFileDialog();
    sfd.ShowDialog();
}

private void FolderBroswerDialogbtn_Click_1(object sender, EventArgs e)
{
    FolderBrowserDialog fbd = new FolderBrowserDialog();
    fbd.ShowDialog();
    FolderBroswerDialogbtn.Text = fbd.SelectedPath;
}

選單和工具欄控制元件

這些控制元件在設計介面中都很直觀,通過簡單的觀察就可以很好地使用

使用MenuStrip,可以
- 建立支援高階使用者介面和佈局的功能的易自定義的常用選單,例如文字和影象排序和對其,拖放操作和訪問選單命令等
- 支援作業系統的典型外觀和行為
- 對多有容器和包含的項進行事件的一致性處理,處理方式與其他控制元件的事件相同

ContextMenuStrip

ToolStrip

ToolStripContainer