using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
comItem1.Items.Add("A");
comItem1.Items.Add("B");
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("a", "A");
dic.Add("b", "B");
dic.Add("c", "C");
/*
comItem2.DataSource = new BindingSource(dic, null);
comItem2.DisplayMember = "Key";
comItem2.ValueMember = "value";*/
comItem2.DisplayMember = "Key";//不区分大小写,key也可以
comItem2.ValueMember = "value";
comItem2.DataSource = new BindingSource(dic, null);
}
/// <summary>
/// 测试1按钮点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnTest_Click(object sender, EventArgs e)
{
//MessageBox.Show("Hello World");
//MessageBox.Show("text", "caption", MessageBoxButtons.OK, MessageBoxIcon.Information);
//MessageBox.Show("text", "caption", MessageBoxButtons.OK);
if(comItem1.SelectedValue==null)
{
//comItem1.Items.Add("A");
//comItem1.Items.Add("B");这种方式赋值,SelectedValue是null;
MessageBox.Show("Selected Value is null");
}
else
{
MessageBox.Show(comItem1.SelectedValue.ToString());
}
//comItem1.Items.Add("A");
//comItem1.Items.Add("B");这种方式赋值,SelectedText是空字符串;按住alt+p可获取SelectedText的值
MessageBox.Show(comItem1.SelectedText);
//comItem1.Items.Add("A");
//comItem1.Items.Add("B");这种方式赋值,Text才可取选中的值;
MessageBox.Show(comItem1.Text);
}
private void btnTest2_Click(object sender, EventArgs e)
{
if (comItem2.SelectedValue == null)
{
MessageBox.Show("Selected Value is null");
}
else
{
MessageBox.Show(comItem2.SelectedValue.ToString());
}
MessageBox.Show(comItem2.SelectedText);//即使是绑定字典,SelectText依然是空字符串
MessageBox.Show(comItem2.Text);
}
private void comItem2_SelectedIndexChanged(object sender, EventArgs e)
{
/*
comItem2.DataSource = new BindingSource(dic, null);
comItem2.DisplayMember = "Key";
comItem2.ValueMember = "value";
*/
MessageBox.Show("IndexChange--"+comItem2.SelectedValue.ToString());//按照上面的顺序,取不到value
/*
以下面的顺序可取的value
comItem2.DisplayMember = "Key";
comItem2.ValueMember = "value";
comItem2.DataSource = new BindingSource(dic, null);
*/
}
}
}
10-10