gpt4 book ai didi

c# - 从 Winforms 中的其他形式访问公共(public)属性(property)

转载 作者:行者123 更新时间:2023-11-30 22:17:07 25 4
gpt4 key购买 nike

例如我有 Form1 和 Form2。Form1 有公共(public)属性

 public IMyCustomType selectedOption;

Form1 中有一个带有自定义对象列表的 comboBox。我希望当用户从该组合列表中选择选项时,用该值填充 selectedOption,例如

public IMyCustomType selectedOption;

private void availableChoices_SelectedIndexChanged(object sender, EventArgs e)
{
selectedOption = (IMyCustomType)availableChoices.SelectedItem;
}

Form2 中,我想创建所选类型的新实例。如何从 form2 访问该 selectedOption 属性并使用该值创建新实例?

最佳答案

如果从 form1 显示 form2,您可以使用带有 owner 参数的重载:

form2.Show(form1);

然后在 form2 中,您可以简单地从所有者属性中获取它:

((Form1)this.Owner).selectedOption

或者您可以在 form2 中创建公共(public)方法,它将接受选定的选项作为参数并在显示 form2 之前调用它。

public class Form2 : Form {
private IMyCustomType parentSelectedOption;
...
public void InitParameters(IMyCustomType selectedOption)
{
parentSelectedOption = selectedOption;
}
}

public class Form1 : Form {
....
var form2 = new Form2();
form2.InitParameters(selectedOption);
form2.Show();
}

不过请注意命名,公共(public)属性(在您的例子中是字段)通常使用 CamelCase 命名。

关于c# - 从 Winforms 中的其他形式访问公共(public)属性(property),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16916540/

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