我有一个带有textBox1的主窗体,字符串值为:asd
namespace Crystal
{
public partial class MainForm : Form
{
//here is a textBox1 with text "asd"
}
}
我想从此类更改此textBox1文本:
namespace Crystal.Utilities
{
public class Logging
{
//textBox1.Text = "dsa";
}
}
问题是,我无法从Logging类更改textBox1的值,因为它在那里不存在:/如何执行此操作?
答案 0 :(得分:0)
您必须创建一个公共属性(假设您正在编写C#)或方法。然后从其他地方访问它。
namespace Crystal
{
public partial class MainForm : Form
{
//here is a textBox1 with text "asd"
public TextBox MyTextBox {
get { return textBox1; }
}
}
}
namespace Crystal.Utilities
{
public class Logging
{
var foo = MainForm; // Get an instance of your MainForm here somehow.
foo.MyTextBox.Text = "dsa";
}
}
答案 1 :(得分:0)
不需要公开整个TextBox - 不要让别人搞乱除了文本以外的其他东西,我认为只是调用一个方法来实现它更可读和简单,而不是访问TextBox直。
namespace Crystal
{
public partial class MainForm : Form
{
public void setTextBox1Text(string newText)
{
TextBox1.Text=newText
}
}
}
namespace Crystal.Utilities
{
public class Logging
{
mainForm.SetTextBox1Text("new text");
}
}