Как обновить текст, отображаемый на ярлыке строки состояния - PullRequest
1 голос
/ 05 октября 2011

Я создал полосу состояния на главной форме и ярлык внутри нее.И я открываю другую форму в этом (MdiContainer это правда).Для открытия я передаю объект главной формы в конструктор, т.е.Там я обновляю текст ярлыка, но он не обновляется.Я также попытался сделать недействительной функцию.

Ответы [ 3 ]

8 голосов
/ 03 ноября 2011

У меня тоже была эта проблема. Исправление заключается в добавлении строки кода, которая запускает события (см. Вторую строку ниже)

MainForm.mainStatusLabel.Text = "Importing data file" //see next line
Application.DoEvents()

Я не совсем понимаю, почему это работает, но я предполагаю, что VB не обрабатывает события приложения в середине метода, пока вы не скажете это. Когда вы изменяете свойство текста, это событие. Поэтому VB будет (я предполагаю) подождать до конца метода, прежде чем обрабатывать событие - если только вы не скажете ему специально обрабатывать все события с помощью Application.DoEvents ()

2 голосов
/ 06 октября 2011

Вместо передачи экземпляра MainForm в ChildForm, определите пользовательское событие в ChildForm, вызовите событие с сообщением, которое вы хотите показать (в качестве аргумента), затем подпишите событие в MainForm и в обработчике событий обновите контрольный текст сообщением. Возможно, вам также придется проверить Control.InvokeRequired.

1 голос
/ 01 октября 2013

У меня также была проблема, в моем случае, потому что текст был слишком длинным для отображения (Содержал сообщение об исключении.) Я установил для свойства SizingGrip значение «False», чтобы мой текст отображался (но был транкирован).

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