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

时间:2010-09-22 15:55:52

标签: 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 = "dsa";
   }
}

问题是,我无法从Logging类更改textBox1的值,因为它在那里不存在:/如何执行此操作?

2 个答案:

答案 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"); } }