2011年12月7日 星期三

C#之foreach 迴圈

foreach( type element-name in group-name){
..........
}

type 元素的資料型態

element-name 元素的變數名稱,可自訂

group-name 包含元素的群組名稱,可以是陣列名稱

foreach迴圈會自動跑過每個陣列元素,即使是多維陣列,也只需要一層迴圈即可。

C#的陣列

陣列索引從0開始

一維陣列

僅宣告陣列,元素值須另外設定:


資料型態[] 陣列名稱 = new 資料型態[元素個數] ;


int[] a = new int[10] ;  //10個元素


a[0] = 1 ;  //設定第一個陣列元素之值


宣告陣列並設定元素值:


資料型態[] 陣列名稱 = new 資料型態[] { 陣列元素值1 , 陣列元素值2 , ......} ;


int[] a = new int[]{1,2,3,4,5} ;  //5個元素及元素值


二維(以上)陣列,以二維陣列為例

僅宣告陣列,元素值須另外設定:


資料型態[,] 陣列名稱 = new 資料型態[ 第一維元素個數 , 第二維元素個數 ] ;


int[,] a = new int[3 , 4] ;


宣告陣列並設定元素值:


資料型態[,] 陣列名稱 = new 資料型態[,] { { 陣列元素值1 } , { 陣列元素值2 } , ......} ;


int[,] a = new int[,]{ {0,1,2,3} , {1,2,3,4} ,{4,5,6,7} } ;  //3*4陣列


陣列長度可變的宣告方式(第一維元素也是陣列但長度可不同):


資料型態[][] 陣列名稱 = new 資料型態[ 第一維元素個數 ][] ;


int[][] a = new int[3][] ;  //第一維有3個元素(均為陣列)


a[0]=new int[2] ;  //2個元素


a[1]=new int[4] ;  //4個元素


a[2]=new int[3] ;  //3個元素


陣列的 Length 屬性可取得陣列的長度

2011年12月3日 星期六

對話方塊元件(以OpenFileDialog為例)

Visual C# 內建的對話方塊控制項

OpenFileDialog:開啟檔案對話方塊


SaveFileDialog:儲存檔案對話方塊


FolderBrowserDialog:資料夾選取對話方塊


FontDialog:字型選取對話方塊


ColorDialog:顏色選取對話方塊


開啟檔案對話方塊(OpenFileDialog)常用屬性:

Filter:限定格式,語法如下


選項名稱1|過濾規則1|選項名稱2|過濾規則2|選項名稱3|過濾規則3|......


一個選項名稱及一個過濾規則為一組,第一組索引為1


範例:


ini檔|*.ini|所有檔案|*.*


FilterIndex:對話方塊中檔案篩選條件預設選取條件的索引


MultiSelect:是否可以多重選取


FileName:預設檔案名稱或使用者選取的檔案名稱


InitialDirectory:預設開啟目錄



對話方塊呼叫方法:ShowDialog 方法

ShowDialog 方法會回傳使用者最後按下的按鈕類型。

範例:


呼叫出對話方塊並檢查使用者是否按下『確定』鈕


if( openFileDialog.ShowDialog() == DialogResult.OK ){......}

圖片控制項(PictureBox)

圖片來源設定:

Image 屬性:較常使用『專案資源檔』


ImageLocation:可用來載入網路上的圖片或本機圖片位置


若兩項屬性都設定,則使用ImageLocation


SizeMode屬性:調整圖片大小的方式

Normal:左上角對齊,圖片大小不變,圖片若過大則無法完整顯示


StretchImage:圖片延展填滿圖片方塊,圖片若過大可顯示完整圖片,會變形


AutoSize:圖片方塊大小自動隨影像大小改變,當圖片過大時圖片方塊也會過大,超出視窗範圍的部分就無法顯示


CenterImage:圖片正中央對齊圖片方塊中央,影像大小不變,圖片若過大則無法完整顯示


Zoom:圖片大小隨圖片方塊調整,可顯示完整圖片,不會變形


程式中用程式碼設定 SizeMode 範例:

pictureBox.SizeMode = PictureBoxSizeMode.Normal ;

C#自動轉換換行字元

不同作業系統或環境對於換行字元的定義可能不同,在C#中可以使用Environment.NewLine自動轉換為對應的換行字元

下拉式清單方塊(ComboBox)

Items 屬性:清單的選項

Sorted 屬性:清單選項按字母順序排列(true)或按輸入順序排列(false)

DropDownStyle 屬性:

Simple 包含文字方塊、已展開的下拉清單


DropDown 包含文字方塊、下拉按鈕、清單選項


DropDownList 包含下拉按鈕、清單選項,不包含文字方塊



Text屬性:文字方塊所顯示的文字,被選到的清單項目會顯示於文字方塊

文字方塊能讓使用者自訂項目

常用方法與清單方塊(ListBox)一樣

2011年12月2日 星期五

清單方塊(ListBox)

清單項目:items 屬性中編輯

Sorted 屬性:清單項目排列方式,True為依字母順序排列,False為依輸入順序排列



SelectionMode屬性:清單項目選取方式。None 不能選取,One 單一選取,MultiSimple 簡單多選,MultiExtended 進階多選 ( 配合鍵盤 Shift、Ctrl 鍵 )

清單中每個選項都有索引(由0開始)

ListBox.Items.Count 清單的總項目數

單選模式(SelectionMode=One)時:

被選取項目為 ListBox.SelectedItem, 索引為 ListBox.SelectedIndex,未選取任何項目則ListBox.SelectedIndex=-1

複選模式(SelectionMode=MultiSimple or MultiExtended)時:

被選取項目個數 ListBox.SelectedItems.Count,第n個被選取項目為 ListBox.SelectedItems[n-1],其索引為 ListBox.SelectedIndices[n-1],第n個被選取指該項目在表單的排列順序,不是使用者點選的順序

變更清單項目的方法:

ListBox.Items.Add("新項目") 新增一個項目到清單最後一項

ListBox.Items.Insert( n , "新項目") 於索引n的位置插入新項目

ListBox.Items.Remove("移除項目") 從清單中移除指定項目,若有多個同名項目則只移除第一個

ListBox.Items.RemoveAt(n) 從清單中移除指定的索引位置的項目

ListBox.Items.Clear() 清除所有項目