我知道之前已经有人问过这个问题,但是我找不到正确的解决方案。
我在winform项目中工作,我需要从主窗体调用方法到另一个类。
我的代码:
public void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
Thread.Sleep(2000);
}
}
我想在另一个类中调用此方法,以便仅在启用复选框后才会进行睡眠。
很抱歉给您带来混乱,如果您需要更多,请问。
答案 0 :(得分:1)
解决此问题的另一种方法是制作一个名为Settings的公共静态类,并让复选框在其中写入一个值。然后可以轻松地从另一个类中读取此静态类。
同样很容易在此Settings类中添加更多内容
public static class Settings
{
private static bool _checkChanged;
public static CheckChanged
{
get { return _checkChanged; }
set { _checkChanged = value; }
}
}
public void checkBox1_CheckedChanged(object sender, EventArgs e)
{
Settings.CheckChanged = checkBox1.Checked;
}
然后从另一个班级做
if (Settings.CheckChanged)
{
// do here whatever it takes...
}
答案 1 :(得分:0)
如果我的理解正确,那么您需要知道是否已从另一个班级选中了该复选框。有多种方法可以实现。
在初始化另一个类时将对引用的引用传递给该复选框。您使用类似MyClass foo = new MyClass(...);
的类来创建类。只需将复选框传递给类构造函数:MyClass foo = new MyClass(checkBox1, ...)
。
将复选框显示为静态。您不应该这样做,因为这样做不是一个好主意,并且如果您需要这样做,则您的应用程序设计不佳。但是,如果需要...将public static CheckBox checkbox;
添加到表单中,并在表单的构造函数中添加checkbox = checkBox1;
。然后,您可以使用<YourForm>.checkbox
访问该复选框。
使用Fildor建议的App Settings。这可能是最好的方法,但是如果您没有经验,可能会很难做到。
一定会找到有关如何设计WinForms应用程序的教程或指南,否则一旦开始做一些大的事情,就会遇到问题。如果您不熟悉WinForms,请考虑使用WPF,它基本上是现代WinForms。 WinForms是过时的技术,不再开发。