回 帖 发 新 帖 刷新版面

主题:很急呀,谢谢了!!

向高手请教一下。我的问题是我新建一个c#windows应用程序,生成了一个窗体,

名为TestForm.里面有一个函数,名为setColor(),可以设置窗体的背景色。然后

我又新建了一个类Test,我在这个类里写了一个函数,名为
SetBackColor(),是想用来设置testForm的背景色.
它的实现如下
public void SetBackColor()
{
     TestForm testForm = new TestForm();
     testForm.setColor();
}

调用函数发现不能设置背景色,但是单独在TestForm里调用setColor()却可以设

置背景色,请问是什么原因,我想的原因是TestForm testForm = new TestForm

()这个语句是生成一个新的对象,不能改变当前的窗体。有没有什么办法能解决

这个问题,难道在一个新的类里面就不能对一个窗体的属性设置?

回复列表 (共4个回复)

沙发

可以吧..不理解

板凳

你当然需要针对对象实例调用其方法
重新生成一个实例再调用显然不会影响到其它实例

3 楼

那应该怎么做才能达到要求呢,请指点一下.

4 楼

TestForm.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace textcs
{
    public partial class TestForm : Form
    {
        public TestForm()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textcs.Test.SetBackColor(this);
        }
        public void setColor()
        {
            this.BackColor = Color.Red;
        }
    }
}

Test.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace textcs
{
    public class Test
    {
        public static void  SetBackColor(TestForm testForm)
        {
            //TestForm testForm = new TestForm();
            testForm.setColor();
        }

    }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册