将自定义代码添加到Windows应用程序UI

时间:2013-03-22 17:18:26

标签: c# .net visual-studio-2012

在visual studio中,我可以构建我的Windows应用程序,拖放按钮等。

代码会自动生成并放入我的MainForm.Designer.cs文件。

我的解决方案资源管理器中有一个图标MainForm,它包含所有UI组件。

enter image description here

问题是,如何自己创建自定义代码并访问我使用drag n drop创建的按钮和组件。我无法在MainForm图标下创建自己的文件。

主要的Program.cs,其中包含:

MainForm form = new MainForm();
Application.Run(form);

我可以访问该表单,但我无法访问任何组件。所以我不得不将我的所有组件形成私有公共,这是正常的吗? 在我想访问的地方,我必须将form变量作为参数传递。

有没有一种很好的方法来创建自定义的东西,我是通过从Program.cs获取表单变量然后将其传递给其他类来正确地做事情的吗?仍然为什么自动生成的东西紧密耦合在MainForm.cs图标下,但我无法在其中添加我的代码。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

如果查看显示的项目并双击要为其编写代码的Event,您将进入代码视图,并生成代码以访问Event。< / p>

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

enter image description here