请教C# winform 中comboBox的问题

来自故乡的风 2010-05-09 06:08:19
我建了一个表单,还有一个Northwind的Dataset。

Form中有一个comboBox,同数据源相连(Category表)。其中DisplayMember=CategoryName, ValueMember=CategoryID。

还有三个TextBox, 每一个显示选中的值。程序如下:

private void categoriesComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
this.textBox1.Text = this.categoriesComboBox.SelectedValue.ToString();
this.textBox2.Text = this.categoriesComboBox.Text;

this.textBox3.Text = this.categoriesComboBox.SelectedIndex.ToString();
}

第一个显示的是CategoryID,第二个显示的是CategoryName,第三个显示的是索引值。

运行没问题,但是在关闭时出错(在第一个CategoryID),信息是:
Object reference not set to an instance of an object

请问这是什么原因,怎么解决?多谢!

另外显示名称时,用this.textBox2.Text = this.categoriesComboBox.SelectedText;
也出错,用SelectedItem也一直没有成功。怎么办好呢?
...全文
152 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
来自故乡的风 2010-05-09
  • 打赏
  • 举报
回复
楼上的高手们太厉害了!我加了一个判断条件就好了。谢谢谢谢!

那么接下来,如果我想把ComboBox里选中的值作为条件,在一个DataGridView里显示详细信息,该怎么办?

我在DataSet里,已经包含了一个Product表,默认的Query 是全部记录。因此我又加了一个Query:
SELECT ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued
FROM Products
WHERE (CategoryID = @CategoryID)

但是怎么在DataGridView里根据ComboBox选中的值显示出来呢?

再次感谢各位的热心回复!
影子_爱人 2010-05-09
  • 打赏
  • 举报
回复
帮你顶
zzx509 2010-05-09
  • 打赏
  • 举报
回复
第一个问题:你要考虑selectedIndex=-1的情况。
this.textBox1.Text =(string)this.categoriesComboBox.SelectedValue;
第二个问题:SelectedText是指用户框选了combobox当前文本内容的哪些部分,在索引改变时还没有选择,
这个属性是空串。
数据源来自DataTable,SelectedItem是DataRowView对象,不是string类型。
wuyq11 2010-05-09
  • 打赏
  • 举报
回复
if(categoriesComboBox.SelectedItem !=null)
{}
DataRowView drv = (DataRowView)comboBox1.SelectedItem;
string Id = drv.Row["id"].ToString();

private void cmb_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show(((ListItem)cmb.SelectedItem).ID);
}
lzsh0622 2010-05-09
  • 打赏
  • 举报
回复
this.categoriesComboBox.SelectedValue.ToString();
this.categoriesComboBox.SelectedText;

// 这两种用法需要有选中项,否则,会提示引用项没有实例化。


if (comboBox1.SelectedItem != null)
{
//...
}
KnowKjava 2010-05-09
  • 打赏
  • 举报
回复
先实例化
xiaowang1026 2010-05-09
  • 打赏
  • 举报
回复
引用的对象没有被实例化

楼主可以写一一个选择项改变的事件 进行观察

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧