Как изменить значения переменных между пространствами имен / классами? - PullRequest
1 голос
/ 22 сентября 2010

У меня есть основная форма с 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";
   }
}

Проблема в том, что яне могу изменить значение textBox1 из класса Logging, потому что его там нет: / Как это сделать?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2010

Не нужно раскрывать весь TextBox - не хочу, чтобы другие возились с другими вещами, кроме текста, и я думаю, что удобнее читать и просто вызывать метод, который делает это, вместо доступа к TextBoxнепосредственно.

<code>
namespace Crystal
{
    public partial class MainForm : Form
    {
       public void setTextBox1Text(string newText)
       {
        TextBox1.Text=newText
       }
    }
}</p>

<p>namespace Crystal.Utilities
{
   public class Logging
   {
       mainForm.SetTextBox1Text("new text");
   }
}
0 голосов
/ 22 сентября 2010

Вы должны создать публичное свойство (предположим, вы пишете на 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";
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...