我从源代码开始:
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 中文本框的内容。当我这样做它不起作用,只是没有任何反应。任何人都可以帮助我吗?我更新了代码。
答案 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中创建一个新表单。