Я ищу лучший способ управления объектом моей Windows Form, из другого класса. Pls не отвечает, если ваш ответ «Это не так, как вы делаете это на языках ООП!». Pls заботится о том, что мне нужно:Предоставление контроля других классов объекта формы Windows
У меня есть невидимая панель прогресса в моей Windows-форме. Если я нажму кнопку на моей Windows-форме, файл должен быть загружен, а индикатор выполнения должен выполнить некоторые шаги ... Поскольку операция загрузки файла довольно сложна, я загружаю ее из собственного класса, который предназначен для файлов определенного тип. как:
void TestButton_Click(object sender, EventArgs e)
{
MapFiles.ProcessFile()
}
Теперь в методе ProcessFile я хочу, чтобы взять под свой контроль на ProgressBar в моей форме. Это работает, если я делаю ProgessBar общедоступным и статическим. Но у этого есть некоторые недовольства. Вы больше не можете управлять элементом в конструкторе форм.
Было бы легко, если бы я мог просто получить доступ к инстансу объекта моей формы. Но я не знаю, как так как форма инициализируется:
Application.Run(new Form1());
Я не хочу делать что-то с наследованием здесь, потому что MapFiles на самом деле не имеют ничего общего с Form1 ...
Есть ли другой/лучший способ взять контроль над этим ProgressBar из другого класса?
Создайте событие на рабочем классе, которое Form1 может подписаться и использовать для получения обновлений индикатора выполнения. – JeremiahDotNet
Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –
«Это не так, как вы делаете это на современных языках», и есть причина для этого. Это нарушает инкапсуляцию. Ваш класс, который загружает файл, не должен знать, что ваша форма используется для управления индикатором выполнения. Если вы решите изменить свою форму для использования другого элемента управления, тогда код загрузки файла не должен изменяться. Используйте технику, которая отделяет концепцию прогресса от загрузки файла от концепции того, как вы обнаруживаете этот прогресс. –