-5

在 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图标下紧密耦合,但我无法在其中添加我的代码。

4

2 回答 2

2

您可以将自己的代码添加到文件背后的代码中,但该代码通常是表单上控件的用户界面事件的处理程序。我认为你被挂断的地方是 MainForm 是一个类,而不是一个项目。您将类添加到包含它的项目中,然后在表单类的事件处理程序中,您将创建您尝试访问的任何类的实例,并将相关值从表单传递给您需要调用的方法。这样,您的属性可以保持私密,因为表单之外的任何内容都不会试图访问它们。虽然没有被禁止,但我不喜欢将 Form 的实例作为参数传递。

于 2013-03-22T17:32:35.800 回答
0

在 Visual StudioDesign视图中,您应该有一个Properties可用的窗口。在那里,每次您在Design视图中选择一个控件时,您都会看到它更新。在Properties面板中有一个带有闪电的图标,上面有悬停文字说Events

如果您查看显示的那些项目并双击Event您要为其编写代码的项目,您将被推入代码视图,其中包含生成的代码以访问该Event.

但是您不应该做的是尝试从 运行您的表单Program.cs,代码的逻辑关联将在 中生成MainForms.cs,而不是在 中Program.cs,并且您可以从那里访问private上下文中的所有属性。

在此处输入图像描述

于 2013-03-22T17:30:59.740 回答