C#组件容器

时间:2011-05-23 10:43:40

标签: c# winforms

我的项目中有一个Windows窗体和我自己的类

我在自己的班级中有一个方法

public object Sample(Form MyForm,string ComponentName)
{

}

我想从另一个类中获取“MyForm”的组件如何制作THI?

表单类

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

}

个MyOwnClass

public class Sample
{

public object GetComponentMethod(Form form,string ComponentName)
{

////
}

}

2 个答案:

答案 0 :(得分:1)

您是否尝试过:

Control myControl= form.controls.Find(...)?

已更新

很抱歉,但在这种情况下,我无法理解你在找什么!

<强>更新

你必须创建一个公共属性组件!所以你可以检索你需要的数据!

答案 1 :(得分:1)

看起来你只是想从另一个对象访问一个对象的成员。

如果是这样,您需要公开一些访问类的特定实例的方法。

如果您只有一个实例(比如Form1),最简单的方法是通过公共静态属性公开该单个实例。这称为单例模式:

public partial class Form1 : Form
{
    public static Form1 Singleton { get; private set; }
    public Form1()
    {
        Form1.Singleton = this;
        InitializeComponent();
    }
}

您可以从任何地方使用Form1.Singleton.SomeProperty访问您的Form1实例。

我没有在这里推广任何特定的Singleton模式,因为线程安全问题太多了,但是对于你的简单例子,这将完成这项工作。调用静态属性“Singleton”或“This”或“SolutionToMyWoes”或任何你喜欢的东西!