Для того чтобы любое свойство было доступно из другого класса (другая форма, например, Form
сама является классом), свойство должно быть открытым, например, скажем, у вас есть текстовое поле с именем txtSomething
, и вам нужноПолучив доступ к его тексту, вы можете создать открытое свойство, которое позволит вам получить и установить его свойство Text
:
public string SomeProperty { get { return txtSomething.Text;} set {txtSomething.Text = value;}}
Конечно, вы можете изменить MainForm.Designer.cs
и сделать все элементы управления (например, текстовые поля) общедоступными, гдеони определены, но это не очень хороший выбор.потому что вы всегда должны предоставлять публичный доступ только там, где это необходимо.например, если вам нужен элемент управления текстом, пусть будет доступно только его текстовое свойство (код выше).
Даже если вторая форма просто получает значение текстового поля и нуждается в его установке, вы можетедать доступ только для чтения.поэтому приведенный выше код будет выглядеть следующим образом:
public string SomeProperty { get { return txtSomething.Text;} }
Затем, предположив, что экземпляр FrmMain
равен frmMain
, вы можете получить доступ к свойству Text этого текстового поля, например:
string propertyValue = frmMain.SomeProperty;