我在VB.Net上长大。从那里,在例程中,我可以实例化一个表单,并访问我在表单上放置的控件,如文本框。此外,在隐藏表单之后,我可以读取在表单上设置的公共属性。我正在尝试在C#中完成此操作,并且根据智能感知,这两种操作都无法访问。如何在C#WinForms中无法访问公共属性或用户集控件?
所以,形式1,比如我说
Form f = new MyOtherForm();
从那里
,F只返回如文本,或标记的东西.....我不能看到F设定他们的任何控制。
此外,MyOtherForm有一个名为MyResult的公共属性。在VB.Net显示对话框后,我可以从调用窗体访问 f.MyResult
在C#中,我不能。
有人能帮我理解它在C#中的工作原理吗?
你正在将你的表单视为一个普通的“Form”,它没有你添加的这些属性。将声明更改为'MyOtherForm f = new MyOtherForm();'告诉编译器,您确实希望将'f'视为'MyOtherForm',而不仅仅是一个空的'Form'。 –
添加到@GlorinOakenfoot提到的内容,转到'Option Strict On' ...这样的事情会更容易被捕获。否则,你是依靠编译器来铸造它,如果它可以... – Codexer
'f.Controls'包含对'MyOtherForm'中的所有控件的引用 –