从另一个表单调用一个类

时间:2012-02-01 15:27:16

标签: forms class public privacy

我正在尝试从C#中的form2调用类,例如下面的代码来自“Form2”。

    private void button17_Click(object sender, EventArgs e)
     {

         Form1 frontmain = new Form1();
         frontmain.buttonchange();
         this.Hide();
     }

这不会在名为“buttonchange”的“Form1”中执行该类。下面是“buttonchange”类的代码:

    public void buttonchange()
    {
            button1.Text = workshop1;
            button2.Text = workshop2;
            button3.Text = workshop3;
            button4.Text = workshop4;
            button5.Text = workshop5;
    {

我认为它与form1和form2之间的隐私设置有关,但我从未找到解决方案。我总是以某种方式解决它。有谁知道这里的问题是什么?

2 个答案:

答案 0 :(得分:0)

我会在form2上设置事件并设置form1来捕获form1事件。

以下是设置活动的链接:

http://msdn.microsoft.com/en-us/library/awbftdfh.aspx

答案 1 :(得分:0)

你正在创建一个Form1的新实例并在其上调用代码,这可能不是你真正打算做的。

如果您正在尝试引用Form1的现有实例,那么您需要引用它(而不是创建新实例)。

如果Form1的实例产生了您的点击处理程序所在的表单,您可以像这样引用它:

Form1 frontmain = this.Owner as Form1;

如果Form1的实例没有使用单击处理程序生成第二个表单,那么您将需要采用基于事件的方法(这是一种更好的方法,因为它消除了依赖关系)。 / p>