ComboBox的每一個選項之所以會含有數個字段的格式化後的合並結果,其關鍵就在於我們為ComboBox控件的Format事件處理函數編寫了下列程序代碼。
private void ComboBox1_Format(object sender, ListControlConvertEventArgs e)
{
DataRowView myDataRowView = (DataRowVIEw)(e.ListItem);
if (myDataRowVIEw != null)
{
e.Value =
String.Format("{0} - {1} - {2:yyyy/MM/dd} - {3:NT$#,##000}",
myDataRowVIEw["姓名"],
myDataRowVIEw["性別"],
myDataRowVIEw["出生日期"],
myDataRowVIEw["目前薪資"]);
}
}
程序范例2
圖 3-45
圖 3-45所示的是程序范例CH3_DemoForm029.cs的執行畫面,其中ComboBox控件最特殊的地方,就是同時顯示出多個數據源屬性。基本上,在綁定操作方面,我們只分別設置了ComboBox控件的ValueMember與DataSource屬性。
private void CH3_DemoForm029_Load(object sender, EventArgs e)
{
this.culturesCB.ValueMember = "LCID";
this.culturesCB.DataSource =
CultureInfo.GetCultures(CultureTypes.FrameworkCultures);
}
ComboBox的每一個選項之所以會含有其他兩個屬性的值,其關鍵就在於我們為ComboBox控件的Format事件處理函數編寫了下列程序代碼。
private void culturesCB_Format(object sender, ListControlConvertEventArgs e)
{
CultureInfo ci = (CultureInfo)(e.ListItem);
if (ci != null)
{
e.Value = String.Format("{0} : {1}", ci.IEtfLanguageTag, ci.DisplayName);
}
}