Mar*_*ijn 8 c# combobox winforms
我正在动态创建一个这样的组合框:
public Control GenerateList(Question question)
{
// Get a list with answer possibilities
List<QuestionAnswer> answers = question.GetAnswers();
// Get a collection of given answers
Collection<QuestionnaireAnswer> givenAnswers = question.GetFilledAnswers();
ComboBox cmb = new ComboBox();
cmb.Name = "cmb";
cmb.DataSource = answers;
cmb.DisplayMember = "Answer";
cmb.ValueMember = "Id";
// Check an answer is given to the question
if (givenAnswers != null && givenAnswers.Count > 0)
{
cmb.SelectedValue = givenAnswers[0].AnswerId;
}
cmb.DropDownStyle = ComboBoxStyle.DropDownList;
cmb.SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged);
cmb.Leave += new EventHandler(cmb_Leave);
return cmb;
}
Run Code Online (Sandbox Code Playgroud)
问题是,当执行cmb.SelectedValue = givenAnswers[0].AnswerId;cmb.SelectedValue时总是为null.
在调试和浏览answers(数据源)时,我看到Id(ValueMember)与AnswerId(在if语句中)完全相同.两者都具有相同的类型(长)和相同的值,但SelectedValue保持为null.
有没有我看不到的东西?
编辑:
看起来组合框保持空白.当我用我替换时cmb.SelectedValue = givenAnswers[0].AnswerId;,cmb.SelectedIndex = 0;我得到一个ArgumentOutOfRangeException.这个答案集合数是2.所以数据源不是空的......非常好吗?
解:
在将控件添加到表单之前,无法设置SelectedValue,SelectedIndex,SelectedItem属性.将控件添加到表单后,可以设置selectedValue,-Index和-Item属性.
解:
在将控件添加到表单之前,无法设置SelectedValue,SelectedIndex,SelectedItem属性.将控件添加到表单后,可以设置selectedValue,-Index和-Item属性.
| 归档时间: |
|
| 查看次数: |
16735 次 |
| 最近记录: |