在winforms中从其他窗体访问公共属性例如我有Form1和Form2。Form1具有公共属性publicIMyCustomTypeselectedOption;在Form1中有一个带有自定义对象列表的组合框。我想在用户从该组合列表中选择一个选项到selectedOption时填充该值,例如publicIMyCustomTypeselectedOption;privatevoidavailableChoices_SelectedIndexChanged(objectsender,EventArgse){selectedOption=(IMyCustomType)availableChoices.SelectedItem;在Form2中,我想要所选类型的新实例。如何从form2访问该selectedOption属性并创建一个具有该值的新实例?如果从form1显示form2,则可以使用带有owner参数的重载:form2.Show(form1);然后在form2中,您只需从所有者属性中获取它:((Form1)this.Owner).selectedOption或者您可以在form2中使用公共方法,它将接受所选选项作为参数并在显示form2之前调用它。publicclassForm2:Form{privateIMyCustomTypeparentSelectedOption;...publicvoidInitParameters(IMyCustomTypeselectedOption){parentSelectedOption=selectedOption;}}publicclassForm1:Form{....varform2=newForm2(););form2.Show();但请注意,公共属性(您的情况下的字段)通常使用CamelCase命名。我知道的最佳实践是拥有一个控制程序表单的控制器类,然后您可以将对状态对象的引用传递给创建时的表单,并从该状态对象访问您需要的任何属性。(这也可以帮助您做一些巧妙的技巧,例如设置下一个表单以从当前表单加载;您的控制器类可以轻松选择它然后调用等)请提供更多详细信息,我将添加到我的答案中。这取决于您创建Form2的方式。一种简单的方法是将IMyCustomTypeselectedOption放在form2的默认构造函数中,并通过Form2的构造函数将selectedOption从Form1传递给Form2。组合框属性窗口将具有私有成员可见性。将其设置为内部或公共。以上就是C#学习教程:在winforms中访问其他窗体共享公共属性的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
