Combobox.Text 与combobox.Selectitem 与combobox.selectValue?

abd*_*nan 3 c# visual-studio-2010

这些之间有什么区别?我可以使用这些方法中的任何一种在标签中显示组合框的文本,或者有什么区别吗?

label1.Text = comboBox1.SelectedItem.ToString();
label2.Text = comboBox1.Text;
label3.Text = comboBox1.SelectedValue.ToString();
Run Code Online (Sandbox Code Playgroud)

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

error message:Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

Oku*_*ott 5

这是我的例子。

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

物品收集: 在此输入图像描述

结果:

已选一项

选了两个

三选一


SelectedItem:获取或设置组合框中当前选定的项目。
基于ComboBox.SelectionChangeCommited

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

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

这个问题可能是ComboBox SelectedItem vs SelectedValue的重复。

来源msdn
进一步阅读dotnetperls