从另一个类更改Textfield?

时间:2015-07-07 12:51:10

标签: c# visual-studio-2012

我从源代码开始:

FORM

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        try
        {
            MyClassTwo two = new MyClassTwo();
two.putValue();
        }
        catch
        {
            MessageBox.show("Error!");
        }
    }
}

MyClassTwo

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace software
{
    public class MyClassTwo
    {
        Form1 myForm = new Form1();

        public void putValue()
        {
            myForm.textbox1.Text = "Hello";
        }
    }
}

我想更改 MyClassOne 文本框的内容。当我这样做它不起作用,只是没有任何反应。任何人都可以帮助我吗?我更新了代码。

1 个答案:

答案 0 :(得分:1)

MyClassTwo引用的表单与您尝试设置文本的表单不同。您的MyClassTwo正在创建一个全新的表单实例并设置该表单的文本,您永远不会看到

没有太努力,你能尝试这样的事吗?

public class MyClassTwo
{

    public void putValue(Form1 myForm)
    {
        myForm.textbox1.Text = "Hello";
    }
}

 try
    {
        MyClassTwo two = new MyClassTwo();
        two.putValue(this);
    }

这个想法只是传递你想要更改文本的表单,而不是在MyClassTwo中创建一个新表单。