文章

目前顯示的是 十二月, 2011的文章

AMA:動態統計圖表

http://youtu.be/gmu9ieGHlj8

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 屬性可取得陣列的長度

AMA:資料結構之堆疊

AMA:二元樹(Binary Tree)

Part 1 末端節點以外框凸顯

http://youtu.be/r5dNYqkmtJA

Part 2 末端節點以色塊凸顯

http://youtu.be/yZFDAth8eyI

對話方塊元件(以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)一樣

清單方塊(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() 清除所有項目