Как я могу написать в текстовое поле формы из другого объекта, не возвращая - PullRequest
1 голос
/ 17 декабря 2010

Я работаю над формой приложения Windows, и у меня есть многострочное текстовое поле, в которое я хотел бы записать вывод из другого объекта.Я видел аналогичную публикацию о том, как переносить текст из одного текстового поля в текстовое поле другой формы.Однако я работаю с основной формой и не могу создать новую.

Так как же мне присвоить значения .Text основной формы из другого класса?

Ответы [ 2 ]

2 голосов
/ 17 декабря 2010

Вы можете создавать открытые свойства в форме, которые получают или устанавливают свойства элемента управления, например,

public partial class Form1 : Form
{        

    ...

    public string OperatorId 
    { 
        get { return OperatorIdField.Text.Trim().ToLower(); }
    }

    public string Password
    {
        get { return PasswordField.Text.Trim().ToLower(); }
    }

    ...

}

(OperatorIdField и PasswordField являются текстовыми полями. В моем примере свойства доступны только для чтения, т.е. они имеют только «get»методов. В вашем случае вам также необходимо добавить методы "set").

Чтобы предоставить основную форму другим объектам, вы можете создать статический элемент, который предоставляет основную форму, например

static class Program
{
    public static Form MainForm;

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        MainForm = new Form1();

        Application.Run(MainForm);
    }
}

Когда другой объект должен получить пароль, код будет выглядеть примерно так:

string password = Program.MainForm.Password;
1 голос
/ 17 декабря 2010

Во второй форме должно быть событие, которое вы вызываете, когда вам нужно изменить значение текстового поля в основной форме. И главная форма должна быть подписана на это событие и изменить текст в каком-то eventHandler.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...