mih*_*ocu 5 c# events winforms
好的,这是我的第一个 Windows 窗体应用程序,我在重新构建代码时面临一些困难。开始将所有内容都放在Form1
默认提供的类中,它已经变得太大了。我知道这是一种非常糟糕的编程实践,因此我开始进行一些清理并创建不同的类来满足单一责任原则。然而,由于一些与按钮相关和与网格相关的事件在课堂上运行良好Form1
,将它们带到外面会使它们崩溃,我不知道应该如何完成。
public partial class Form1
{
public Form1()
{
InitializeComponent();
}
private void method1(object sender, EventArgs e)
{
//CODE
}
private void method2(object sender, DataGridViewCellEventArgs e)
{
//CODE
}
private void method3(object sender, EventArgs e)
{
//CODE
}
}
Run Code Online (Sandbox Code Playgroud)
所以我想将method1
、method2
等移动method3
到不同的类(或不同的类),但几乎不知道如何在不破坏应用程序的情况下做到这一点。好吧,私有显然设置为公共以授予访问权限,但我不知道如何在 Form1 类中调用这些方法。当我创建新类然后尝试调用事件方法时,就像onClick: Newclass.method1()
它不起作用一样。我能想到的一件事就是调用一些方法Form1 onClick: thisMethodCallsTheOneINeedInADifferentClass()
,但这似乎是一个笨拙的解决方案......我确信有更好的方法来解决这个问题,我只是不知道如何做。感谢您的建议,谢谢
您应该将事件处理程序保留在表单中,但可以将代码移至另一个类。如果你想调用你的类,你不能直接调用它。你需要做这样的事情:
YourClass class1 = new YourClass();
Run Code Online (Sandbox Code Playgroud)
您也可以将其声明为静态,然后只需要调用它一次。
private static YourClass class1 = new YourClass();
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样使用你的方法:
class1.YourMethod();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1331 次 |
最近记录: |