2016年1月15日 星期五

ComboBox 控制項

ComboBox 是下拉式輸入選單,基本上它是一個 TextBox 加上一個下拉式清單,目的是為了讓使用者方便操作。 可以變更設定成不允許使用者輸入,以限制資料內容。

對於 ComboBox 這個控制項,重點都在這個下拉式清單,它就同 ListBox 一樣,就是一個物件集合,可以透過 ComboBox.Items 屬性取得。 既然是集合物件,所以在下拉選單中可以放入任何型別的資料,例如:數值、字串或自訂物件。 同樣的,因為放入的是非固定型別,在讀取時就必須再轉型回來。

// add 3 item
    comboBox1.Items.Add(new Student("1", "StudendA", "123"));
    comboBox1.Items.Add(new Student("2", "StudendB", "123"));
    comboBox1.Items.Add(new Student("3", "StudendC", "123"));
    // get 2nd item
    Student item = (Student)comboBox1.Items[1];

DataGridView 控制項(3)

2015年12月8日 星期二

工廠模式

工廠模式

當系統中有多個類似的物件,而你隨時可能要建立這些物件的實體,但是到底要 new 哪一個物件,卻必須等到執行階段才能知道,這時候就適合使用工廠模式。 這個模式利用一個稱為 Factory 的元素來執行實際建立實體的工作,同時也讓程式架構符合「開放-封閉原則」(Open/Closed Principle, OCP)。

2015年8月28日 星期五

Form 三二事

在 WinForm 表單設計中,常會使用到表單來傳值。 例如: FormA 開啟 FormB 後,想傳遞資料給 FormB ,或者 FormA 開啟 FormB 後,經過使用者的操作後, FormB 要將資料傳回 FormA 。 底下是這些相關的操作的備忘錄:

2015年8月27日 星期四

WebBrowser 三二事

WebBrowser 是 Windows Form 應用程式中用來顯示 Web 網頁的控制項。 底下幾個與 WebBrowser 相關的議題,做個記錄備忘一下。

2015年8月20日 星期四

平行程式設計

之前曾經介紹過如何使用 Thread 或 ThreadPool 建立執行緒,以達到多個工作同步執行的目的。 並利用「同步處理」的機制,以取得非同步作業的執行結果。 自 .NET 4.0 開始,在 System.Threading.Tasks 命名空間中,已提供幾個相關的 Task 類別,可以用來簡化撰寫並行作業的程式碼。 這一組相關的類別庫就稱為「工作平行程式庫」( ,TPL),它簡化了撰寫平行作業的許多細節,讓開發人員可以更專注於程式所應完成的工作。

2015年6月25日 星期四

Picasa Web Album with OAuth2

Picasa Web Albums 原本是 Picasa 公司提供的網路相簿,後來被 Google 併了,隨後也將它與 Google+ Photos 整合在一起。 近日 Google 正式推出 Google Photos ,雖然是一個類似 Flickr 型態的服務,但底層架構還是同原先的 Picasa Web Album 或 Google+ Photos 。

之前使用 Google GData Photos 類別庫存取 Picasa Web API,可以使用 ClientLogin 方式,但近日 Goolge 已經不再支援這個選項,所以只能透過 OAuth 2.0 或 Google+ Sing-In 的方式。 這篇文章就是要介紹如何透過 OAuth 授權方式,存取 Picasa Web Albums 。 另外要提到一點,Google 最近推出的 Google Photos 不知道會不會提供新的 API ,也沒相關說明, 目前如果要存取 Google 相簿,還是針對 Picasa Web Albums Data API Version 2.0 ,搭配的類別庫則是 Google Data API Client Library ,版本 2.2.0.0。