Roe*_*oel 17 c# combobox populate winforms
所以我一直在寻找为我的组合框设置一个默认值.我发现了一些东西但它们似乎都没有用.
实际上,如果我创建一个简单的组合框并使用它,comboBox1.SelectedIndex = comboBox1.Items.IndexOf("something")但是一旦我动态生成组合框的内容,它就无法工作了.
这是我填充我的组合框(位于类的构造函数中);
string command = "SELECT category_id, name FROM CATEGORY ORDER BY name";
List<string[]> list = database.Select(command, false);
cbxCategory.Items.Clear();
foreach (string[] result in list)
{
cbxCategory.Items.Add(new ComboBoxItem(result[1], result[0]));
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法让它设置默认值,就像我放在cbxCategory.SelectedIndex = cbxCategory.Items.IndexOf("New")上面的代码下面,它将无法正常工作.
顺便说一句,WinForms.
先感谢您.
ilt*_*rtz 24
cbxCategory.SelectedIndex 应该从设置为一个整数0,以Items.Count-1类似
cbxCategory.SelectedIndex = 2;
Run Code Online (Sandbox Code Playgroud)
您的
cbxCategory.SelectedIndex = cbxCategory.Items.IndexOf("New")
Run Code Online (Sandbox Code Playgroud)
只要没有ComboboxItem变换字符串("New"),就应该返回-1;
另一个解决方案,虽然我不喜欢它会有多少
foreach(object obj in cbxCategory.Items){
String[2] objArray = (String[])obj ;
if(objArray[1] == "New"){
cbxCategory.SelectedItem = obj;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
也许这也需要对您的代码进行以下转换
foreach (string[] result in list)
{
cbxCategory.Items.Add(result);
}
Run Code Online (Sandbox Code Playgroud)
我没有测试代码,我不确定转换为String [2],但类似的东西应该工作
| 归档时间: |
|
| 查看次数: |
82109 次 |
| 最近记录: |