comboBox.SelectedItem与SelectedText区别
->SelectedItem是指当前选定项的对象,而不是文本
SelectedItem 属性设置为一个对象时,ComboBox 尝试使该对象成为列表中当前选定的对象。如果在列表中找到了该对象,则将它显示在 ComboBox 的编辑部分,并且将 SelectedIndex 属性设置为相应的索引。如果列表中不存在该对象,则 SelectedIndex 属性保留其当前值。
comboBox.SelectedText:表示组合框中当前选定文本的字符串,如果 DropDownStyle 设置为 comboBoxStyle.DropDownList,则返回值为空字符串 ("")。
comboBox.SelectedValue:包含由 ValueMember 属性指定的数据源成员的值的对象。
string str=(string)comboBox.SelectedItem; 可以获得comboBox当前项的值
string str=comboBox.Text; 同样也可以获得当前项的值
comboBox.SelectedItem: 这是一个对象
comboBox.SelectedText:是指你当前选中第几个字符,不是第几项。比如:“你好吗”如果你用鼠标选中了“好”,那么 comboBox.SelectedText就是当前项的第二个字符。比如当前项是:“小青蛙”,那么comboBox.SelectedText的值就 是“青”。comboBox的DropDownStyle必须Simple
comboBox.SelectedValue:返回ValueMember指定的字段的值。
例如:ValueMember设置为ID,comboBox显示的为Name,有如下记录:
ID Name
001 青蛙
当comboBox的当前项显示是“青蛙”时,SelectedValue的值为:001
comboBox当前显示的值是:comboBox.Text
----------------------------------------------------------------------------------------------------------------------------------------
using System;
using System.Windows.Forms ;
using System.Drawing ;
using System.Collections ;
namespace MyListControlSample
{
public class USState
{
private string myShortName ;
private string myLongName ;
public USState(string strLongName, string strShortName)
{
this.myShortName = strShortName;
this.myLongName = strLongName;
}
public string ShortName
{
get
{
return myShortName;
}
}
public string LongName
{
get
{
return myLongName ;
}
}
public override string ToString()
{
return this.ShortName + " - " + this.LongName;
}
}
public class ListBoxSample3:Form
{
private ListBox ListBox1 = new ListBox();
private TextBox textBox1 = new TextBox() ;
[STAThread]
static void Main()
{
Application.Run(new ListBoxSample3()) ;
}
public ListBoxSample3()
{
this.AutoScaleBaseSize = new Size(5, 13) ;
this.ClientSize = new Size(292, 181) ;
this.Text = "ListBox Sample3" ;
ListBox1.Location = new Point(24, 16) ;
ListBox1.Name = "ListBox1" ;
ListBox1.Size = new Size(232, 130) ;
textBox1.Location = new Point(24, 160) ;
textBox1.Name = "textBox1" ;
textBox1.Size = new Size(240, 24) ;
this.Controls.AddRange(new Control[] {ListBox1, textBox1}) ;
// Populates the list box using DataSource.
// DisplayMember is used to display just the long name of each state.
ArrayList USStates = new ArrayList() ;
USStates.Add(new USState("Alabama", "AL"));
USStates.Add(new USState("Washington", "WA")) ;
USStates.Add(new USState("West Virginia", "WV"));
USStates.Add(new USState("Wisconsin", "WI")) ;
USStates.Add(new USState("Wyoming", "WY"));
ListBox1.SelectedValueChanged += new EventHandler(ListBox1_SelectedValueChanged);
ListBox1.DataSource = USStates ;
ListBox1.DisplayMember = "LongName" ;
ListBox1.ValueMember = "ShortName" ;
}
private void InitializeComponent()
{
}
private void ListBox1_SelectedValueChanged(object sender, EventArgs e)
{
if (ListBox1.SelectedIndex != -1)
textBox1.Text = ListBox1.SelectedValue.ToString();
}
}
}