我从一个类的实例填充C#中的ComboBox.
如何通过检索对相应对象的引用来获取所选项目?
我已经使用了SelectedValue,SelectedItem,SelectedIndex,但是它们都返回了我对象的字符串表示形式.
谢谢
[编辑]
一段代码,展示我正在尝试做的事情:
填充部分:
foreach (Business.IAuteur auteur in _livreManager.GetAuthors())
{
comboAuthor.Items.Add(auteur);
}
检索部分,在单击保存按钮时激活:
private void btnSave_Click(object sender, EventArgs e)
{
Business.IAuteur auteur = new Business.Auteur();
auteur = (Business.IAuteur)comboAuthor.SelectedValue;
// A short verification that my item has been correctly
// retrieved
toolStripStatusLabel1.Text = auteur.Nom;
}
错误消息,指向此处:toolStripStatusLabel1.Text = auteur.Nom;
Object reference not set to an
instance of an object.
解决方法:
如果SelectedItem
返回一个字符串对象,则将用字符串填充ComboBox.如果在POCO中覆盖ToString,则ComboBox将自动显示该值,同时返回带有SelectedItem的所需对象.
如MSDN中所述,您还应该在POCO中覆盖Equals,以便在必要时可以在Items集合中找到它.
编辑:解决您的代码.
添加到ComboBox时丢失.ToString()调用,并按照上面的建议进行操作.
标签:combobox,c,winforms 来源: https://codeday.me/bug/20191024/1918739.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。