Forms 如何在名称空间/类之间更改变量值?
我有一个带有textBox1和字符串值的主窗体:asdForms 如何在名称空间/类之间更改变量值?,forms,class,Forms,Class,我有一个带有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
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的值,因为它不存在:/How to do this?您必须创建一个公共属性(假设您正在编写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";
}
}
不需要公开整个文本框-不希望其他人只处理文本以外的其他事情,我认为只调用一个方法来实现这一点,而不是直接访问文本框,更容易阅读和理解。
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");
}
}
名称空间晶体
{
公共部分类主窗体:窗体
{
public void setTextBox1Text(字符串newText)
{
TextBox1.Text=newText
}
}
}
命名空间Crystal.Utilities
{
公共类日志记录
{
mainForm.SetTextBox1Text(“新文本”);
}
}
您的MainForm类是部分的。它有两个地方的源代码。使用右键单击>查看代码。