Forms 如何在名称空间/类之间更改变量值?

Forms 如何在名称空间/类之间更改变量值?,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

我有一个带有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的值,因为它不存在:/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类是部分的。它有两个地方的源代码。使用右键单击>查看代码。