我对C#还是很陌生,并且一直在玩一些,对于我的项目,我有这两种形式, 在表格1中,我有这些变量
--onto
在表格2上
我有一个窗口对话框,应该保持相同的主题
例如:
Color ColCurrentPrimary = Color.FromArgb(35, 39, 42);
Color ColCurrentSecondary = Color.FromArgb(44, 47, 51);
但是,Form 2中不存在ColCurrent主要和次要元素,我将如何传递它们?还是可以通过两种形式访问“全局”?
任何建议将不胜感激,
感谢您阅读
塞缪尔
答案 0 :(得分:2)
Singleton是最适合您的解决方案。通读该页面-它会告诉您创建一个页面所需的一切。拥有它之后,您可以从配置文件中初始化它的属性,也可以只在代码中设置它们的属性,然后可以在全局范围内使用该类来配置任何新表单。
这是我通常使用的:
public sealed class Singleton
{
private static Singleton instance = null;
private static readonly object padlock = new object();
//add public properties here to use for your config!
public Color ColCurrentPrimary { get; set; }
Singleton()
{
}
public static Singleton Instance
{
get
{
lock (padlock)
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
}
然后您可以像这样使用它:
Singleton.Instance.ColCurrentPrimary
正如史蒂夫所说,您也可以使用静态类。对于您的情况,这可能更简单。单例对于多线程应用程序非常有用,但是这样做可能有点过大。这是一个静态类的示例:
static class Config
{
public static Color ColCurrentPrimary { get; set; }
}
然后您可以像这样使用它:
Config.ColCurrentPrimary
您只需要确保在可以访问您需要访问的名称空间的类中定义类,或者添加using
语句以使其可访问。