2013-03-22 57 views
-5

在Visual Studio中我可以建立我的Windows应用程序,拖放按钮等添加自定义代码到Windows应用程序的UI

和代码自动生成,把我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图标下,但我不能在那里添加我的代码。

+0

一个简单的方法来生成代码,如点击按钮是双击设计器中的按钮(拖放),然后将您带到生成的代码。 – 2013-03-22 17:21:00

+0

@DROPtableusers我知道那里的代码是,但我不能在那里添加我自己的类。 – Jaanus 2013-03-22 17:22:19

+2

这是一个超级基本的视觉工作室问题。我认为你需要研究一些教程。 – JeremyK 2013-03-22 17:29:31

回答

2

您可以添加自己的代码隐藏文件的代码,但这些代码通常是在窗体上的控件用户界面事件处理程序。我认为你所挂起的是MainForm是一个类,而不是一个项目。您将类添加到包含它的项目中,然后在表单类的事件处理程序中,您将创建要尝试访问的任何类的实例,并将相关值从表单传递到需要调用的方法。通过这种方式,您的属性可以保持私有状态,因为表单以外的任何内容都不会尝试访问它们。虽然不是禁止的,但我不喜欢将参数的形式作为参数传递。

+0

建议不要向生成的文件添加代码,因为如果重新生成文件,您将失去全部代码。 – 2013-03-22 17:37:59

+0

同意。我的意思是代码背后的代码,而不是生成的文件。我会编辑澄清。 – 2013-03-22 17:41:06

+0

我还可以说,这种事情是'部分班'特别方便的地方。 :) – 2013-03-22 17:43:44

0

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

如果您浏览显示的项目,然后双击要编写代码的Event,您将被推入代码视图,并生成代码以访问Event

但是你不应该做的就是尝试从Program.cs运行形式,该代码的逻辑连接插件将在MainForms.cs,而不是Program.cs产生,并从那里,你可以访问的所有属性private上下文。

enter image description here

相关问题