2008年11月11日 星期二

ToolStrip控制項(2)-ToolStripButton和ToolStripProgressBar應用

ToolStripButton是可包含文字和影像的可選取項目,透過ToolStripButton可以建立同時支援文字和影像的工具列按鈕,最主要的事件當然就是Click事件囉,因為畢竟ToolStripButton與一般按鈕的預作方式雷同。

亞當斯來做個簡單示範,首先先拉一個Timer控制項到表單畫面中,設定Interval屬性為500(0.5秒的意思)。接著表單中先加入ToolStrip控制項,新增一個ToolStripButton,並且直接雙擊滑鼠,在Click的事件程序中加入啟用計時器的程式碼即可。

Timer1.Enabled = True

ToolStripProgressBar 控制項從視覺上指示長時間作業的進度,會以不同色彩由左到右填滿的形式列來顯示作業進度。 要特別注意的是:ToolStripProgressBar 只能置於水平方向,通常我們會用ToolStripProgressBar 來顯示一些需要長時間進行動作的進度監控或顯示資訊,讓使用者可以得知目前系統的作業進度為何,例如:下載檔案、複製檔案或是存取大量資料、列印文件等等。

如果要修改ToolStripProgressBar顯示的數值,並不一定要直接變更 Value 屬性,可以使用Step屬性來指定Value將要遞增的特定數值,再呼叫PerformStep方法來遞增。若要讓遞增數值有所變化,則可以使用 Increment 方法,並指定用來遞增 Value 屬性的值。接著亞當斯在ToolStrip中加入ToolStripProgressBar,並且設定相關屬性:

  • Maximum:100
  • Minimum:0
  • Step:10
  • Style:Continuous

然後在Timer的Tick事件中,加入以下程式碼,去改更ToolStripProgressBar顯示的數值:
ToolStrip04

將應用程式執行,並且按下ToolStripButton啟動計時器,就可以看到ToolStripProgressBar的數值會有所變化了。
ToolStrip05

2008年11月10日 星期一

ToolStrip控制項(1)-ToolStrip設計簡介

ToolStrip控制項為 Windows 工具列物件提供容器,類似VS.NET2003開發WinForm的ToolBar控制項,基本上在VS2008設計WinForm會希望用ToolStrip來取代ToolBar,不過基本上還是相容的。

ToolStrip控制項中主要有幾大類的控制項可以設定,分別為:

  • ToolStripButton:近似於熟知的Button控制項,以按鈕的型態呈現在工具列上。按下按鈕會觸發並執行ToolStripButton.Click事件處理常式裡的程式。
  • ToolStripLabel:包含Label控制項,以及LinkLabel控制項的功能,當其IsLink屬性為False時,只會在工具列上顯示Text屬性裡包含的文字。而當IsLink屬性為True時,ToolStripLabel控制項便會類似於LinkLabel控制項。
  • ToolStripSeparator:ToolStripSeparator控制項是用來區隔工作列不同群組項目使用的控制項。
  • ToolStripSplitButton:結合ToolStripButton控制項,以及ToolStripDropDownButton控制項的功能,它包含一個獨立的按鈕以及一個下拉式選單,各自均有獨立的滑鼠點擊事件,ToolStripSplitButton.Click事件是用來回應按鈕點擊,而ToolStripMenuItem.Click則可用來回應功能表裡每一個選項的點擊動作。
  • ToolStripDropDownButton:允許為按鈕建立一個對應的下拉式選單。
  • ToolStripComboBox:近似於ComboBox控制項,支援Simple、DropDown以及DropDownList等不同的樣式,此外,也透過Items集合來管理其所屬的清單項目。
  • ToolStripTextBox:與TextBox控制項非常相似,與TextBox控制項最大的差異是,ToolStripTextBox控制項並不支援MultiLine屬性。
  • ToolStripProgressBar:與標準的ProgressBar控制項近似,ToolStripProgressBar控制項的外觀由Style屬性決定。可以透過叫用Increment以及PerformStep這兩個方法來改更進度。下列為Style屬性設定值:

    Blocks:增加 ProgressBar 中的分段區塊數,以表示進度
    Continuous: 增加 ProgressBar 中的平滑連續列大小,以表示進度
    Marquee:以跑馬燈形式在 ProgressBar 中連續捲動區塊,以表示進度

如果在表單中把ToolStrip中每一種都加入的話,看起來應該會像以下圖形,按照順序分別為ToolStripButtonToolStripLabelToolStripSplitButtonToolStripDropDownButtonToolStripComboBoxToolStripTextBoxToolStripProgressBar。

ToolStrip01這樣的設計方式都然要自己去設定控管這些項目的功能為何,其實 ToolStrip預設有提供一組系統常用且已經設定好的工具列按鈕,讓開發者直接使用,不過要加入這個預設的功能,可是讓亞當斯找好久,熊熊忘記要設定哪個地方才能加入,後來發現,原來遠在天邊,近在眼前啊!

只要對著ToolStrip按下右鍵,選擇插入標準項目即可。

ToolStrip02

插入後,就會有一組標準的系統工具列可以使用了。
ToolStrip03