在visual studio中,我可以构建我的Windows应用程序,拖放按钮等。
代码会自动生成并放入我的MainForm.Designer.cs
文件。
我的解决方案资源管理器中有一个图标MainForm
,它包含所有UI组件。
问题是,如何自己创建自定义代码并访问我使用drag n drop
创建的按钮和组件。我无法在MainForm
图标下创建自己的文件。
主要的Program.cs,其中包含:
MainForm form = new MainForm();
Application.Run(form);
我可以访问该表单,但我无法访问任何组件。所以我不得不将我的所有组件形成私有公共,这是正常的吗?
在我想访问的地方,我必须将form
变量作为参数传递。
有没有一种很好的方法来创建自定义的东西,我是通过从Program.cs
获取表单变量然后将其传递给其他类来正确地做事情的吗?仍然为什么自动生成的东西紧密耦合在MainForm.cs
图标下,但我无法在其中添加我的代码。
答案 0 :(得分:2)
您可以将自己的代码添加到文件后面的代码中,但该代码通常是表单上控件的用户界面事件的处理程序。我觉得你被挂起的地方是MainForm是一个类,而不是一个项目。您将类添加到包含它的项目中,然后在表单类的事件处理程序中,您将创建您尝试访问的任何类的实例,并将表单中的相关值传递给您需要调用的方法。这样,您的属性就可以保持私有状态,因为表单外部没有任何内容可以访问它们。虽然不是禁止的,但我不喜欢将Form的实例作为参数传递。
答案 1 :(得分:0)
在Visual Studio Design
视图中,您应该有一个Properties
窗口。在那里,每当您在Design
视图中选择控件时,您都会看到它更新。在Properties
面板中,有一个带有闪电的图标,悬停文字为Events
。
如果查看显示的项目并双击要为其编写代码的Event
,您将进入代码视图,并生成代码以访问Event
。< / p>
但是您不应该尝试从Program.cs
运行您的表单,代码的逻辑关系将在MainForms.cs
生成,而不是Program.cs
,并且从那里,您可以访问private
上下文中的所有属性。