Member 14852747 Ответов: 2

Как запустить таймер формы 3 C# winforms


У меня есть приложение, в котором мне требуется этот таймер form3 strat, когда я нажимаю кнопку form1, чтобы открыть form2 . Вот мой код :

Что я уже пробовал:

from3.timerrefresh ;
                 private void btnbreak_Click(object sender, EventArgs e)
                 {


                 from2 fm= new from2 ();
                 fm.timerrefresh = timerdatarefresh;
                 fm.ShowDialog();
                 fm.TopLevel = true;

                 }

Member 14852747

Могу ли я получить timer1 из form1 в событии загрузки form2?

2 Ответов

Рейтинг:
2

BillWoodruff

Ваше описание не ясно; опишите цель каждой формы. Есть форма form1 главная форма ? Когда создается и показывается форма 3 ?

При создании Form2 внутри обработчика событий: вне области действия обработчика событий его не существует Поскольку другие формы не имеют ссылки на него, то никакая другая форма не может взаимодействовать с ним. Поскольку он не имеет ссылок на другие формы, он не может взаимодействовать с ними,

Когда вы показываете Form2 с помощью ShowDialog, это окно верхнего уровня.

Постарайтесь четко объяснить, чего вы хотите достичь,


Рейтинг:
1

OriginalGriff

Создать public метод в Form3, который запускает таймер, и вызовите его из Form1, прежде чем вызывать это:

fm.ShowDialog();

Однако он, вероятно, не будет делать то, что вы хотите, потому что ShowDialog является ли приложение модальным: оно не возвращается до тех пор, пока форма не будет закрыта. Таким образом, существует хороший шанс, что экземпляр Form3 не будет обновляться по событиям тика таймера до тех пор, пока экземпляр Form2 не будет закрыт. Зависит от того, чего вы пытаетесь достичь.

Возможно, вам придется использовать fm.Show вместо этого и вручную игнорируйте пользовательские вводы в Form1 до тех пор, пока экземпляр Form2 не будет закрыт.