Combobox.Text Vs combobox.Selecteditem与combobox.selectedValue?

时间:2014-02-04 12:37:01

标签: c# visual-studio-2010

这些中的每一个有什么区别? 我可以使用这些方法中的任何一种在标签中显示组合框的文本,还是有什么区别?

label1.Text = comboBox1.SelectedItem.ToString();
label2.Text = comboBox1.Text;
label3.Text = comboBox1.SelectedValue.ToString();

我正在测试组合框的这些值,但我对它们如何工作感到困惑。 我想在标签中显示组合框的文本。使用comboBox.Text它工作正常,但其余两个给出以下错误:

error message:Object reference not set to an instance of an object.

1 个答案:

答案 0 :(得分:4)

这是我的例子。

private void comboSelectChanged(object sender, SelectionChangedEventArgs e)
{
  textBox1.Text = comboBox1.SelectedItem.ToString();
  textBox2.Text = comboBox1.Text;
  textBox3.Text = comboBox1.SelectedIndex.ToString();
}

物品集合: enter image description here

结果:

One selected

Two selected

Three selected


SelectedItem:获取或设置ComboBox中当前选定的项目      基于ComboBox.SelectionChangeCommitted

Text:获取或设置与此控件关联的文本。 (重写Control.Text。)
设置文本值将更改组合框的当前值

SelectedValue:获取或设置ValueMember属性指定的成员属性的值。 (继承自ListControl。)
     基于ListControl.SelectedValueChanged

此问题可能与ComboBox SelectedItem vs SelectedValue重复。

来源msdn
进一步阅读dotnetperls