关于c#:从另一个表单设置combobox selectedindex时出现问题
Trouble setting combobox selectedindex from another form
我正在尝试根据用户在第一个表单 (form1) 上选择的索引在另一个表单 (form2) 上设置 selectedindex。
我正在使用此代码获取值,但它返回一个负数。
|
public int SelectedComboIndex
{ get { return comboBox1.SelectedIndex; } } |
我正在尝试通过
设置组合框索引
|
comboBox1.SelectedIndex = form1.SelectedComboIndex;
|
谁能指出我正确的方向如何做到这一点?
编辑:更多代码用于调用 form1 上的代码
|
Form1 form1 = null;
public Form2(Form1 parentForm1) : this() { form1 = parentForm1; } |
相关讨论
-
-1 的SelectedIndex 值表示未选择任何内容,您确定选择了某些内容吗?combBox1.SelectedIndex 的默认值为-1 - 这正是我得到的负数。我确定我选择了它,但只是试图将选择转移到 form2 上的另一个组合框
- 在您设置属性 SelectedComboIndex 和使用它的位置发布您的 form1 和 form2 代码
- 上面贴过。生病添加更多
- 您能否显示调用此代码的方法:comboBox1.SelectedIndex = form1.SelectedComboIndex; ?
- 如果我没有错,那么很有可能,SelectedComboIndex 正在获取 selectedindex,或者应该是,并且通过使用公共 Form2 部分,调用 form1.SelectedComboIndex
如果没有选择索引,组合框会返回负值(通常为 -1)。
所以我相信(我没有检查过)如果你为 SelectedIndex 属性设置了一个负值,你要做的就是清除组合框中的选择。
希望对您有所帮助。
相关讨论
- 这只是重申了我上面已经提到的内容,它并不是真正的答案,只是 ComboBox 的工作原理
最佳实践是通常在表单的
|
private Form1 _parentForm;
public Form2(Form1 parentForm) : this() { _parentForm = parentForm; } public Form2() private void Form2_Load(object sender, EventArgs e) |
试试看它是否有效。只需确保将 Load 处理程序正确添加到表单中(通过设计器或通过
在代码中
正如其他人所说,如果
此外,仅仅因为您的
如果您希望用户能够打字,请考虑将
相关讨论
- 所以我得到的感觉是这行代码comboBox1.SelectedIndex = form1.SelectedComboIndex;