gpt4 book ai didi

C# 使用 selectedValue 设置组合项

转载 作者:太空狗 更新时间:2023-10-29 18:17:08 25 4
gpt4 key购买 nike

我正在动态创建一个这样的组合框:

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;
}

问题是,在执行 cmb.SelectedValue = givenAnswers[0].AnswerId; 时,cmb.SelectedValue 始终为 null。

在调试和探索 answers(数据源)时,我看到 Id (ValueMember) 与 AnswerId(在 if 语句中)完全相同。两者具有相同的类型(long)和相同的值,但 SelectedValue 保持为空。

有什么我没看到的吗?

编辑:

组合框看起来是空的。当我将 cmb.SelectedValue = givenAnswers[0].AnswerId; 替换为 cmb.SelectedIndex = 0; 时,我得到一个 ArgumentOutOfRangeException。这虽然答案集合计数为 2。所以数据源不为空...非常强吧?

解决方案:

在将控件添加到窗体之前,无法设置 SelectedValue、SelectedIndex、SelectedItem 属性。将控件添加到窗体后,可以设置selectedValue、-Index和-Item属性。

最佳答案

解决方法:

在将控件添加到窗体之前,无法设置 SelectedValue、SelectedIndex、SelectedItem 属性。将控件添加到窗体后,可以设置selectedValue、-Index和-Item属性。

关于C# 使用 selectedValue 设置组合项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2864065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com