Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как во время исполнения программы узнать имя активной формы? / 6 сообщений из 6, страница 1 из 1
24.01.2005, 13:55
    #32880023
Alexandr Golovko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как во время исполнения программы узнать имя активной формы?
Такая пробема:
Есть проект, содержащий, скажем, под пару сот форм. Проект мне еще не знаком.
Запускаю проект на выполение. В программе вызываю форму, скажем, добавление пользователя. И например, мне что-то в этой форме не понравилось. Как мне узнать, как называеться эта форма в проекте, что бы поправить ее?
Не знаю как в VB.NET, а в VB6 это делалось очень просто:
На нужной форме (должна быть активна форма), в момент выполения программы нажимается Ctrl+Pause, затем нажимаем продолжить (F8) и теперь, когда мы нажимаем на любой компонент с оброботчиком (кнопка,комбобокс) программа останавливаеться на коде этого обработчика в данной форме. И мы видем название этой формы.
А как найти нужную форму в C#? не перелопачивать же все формы? :)
Мож какая утилита есть, если в самом C# нет такой возможности?
...
Рейтинг: 0 / 0
24.01.2005, 14:10
    #32880071
Secret
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как во время исполнения программы узнать имя активной формы?
есть статический метод Form.ActiveForm
...
Рейтинг: 0 / 0
24.01.2005, 14:18
    #32880106
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как во время исполнения программы узнать имя активной формы?
>> Как мне узнать, как называеться эта форма в проекте

> есть статический метод Form.ActiveForm

Более точно для данного случая было бы

Код: plaintext
1.
string fullName = typeof(Form.ActiveForm).FullName;

--
WBR, Roman S. Golubin
ICQ UIN: 63253392
...
Рейтинг: 0 / 0
24.01.2005, 15:43
    #32880418
Alexandr Golovko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как во время исполнения программы узнать имя активной формы?
что то я не совсем понял, что мне дает Form.ActiveForm?
Если я остановлю проект (нажму на паузу) и просмотрю Form.ActiveForm, то я же ничего не увижу!
...
Рейтинг: 0 / 0
24.01.2005, 16:20
    #32880545
Secret
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как во время исполнения программы узнать имя активной формы?
Ctrl+Break не пробовали?
...
Рейтинг: 0 / 0
24.01.2005, 16:46
    #32880622
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как во время исполнения программы узнать имя активной формы?
Alexandr Golovkoчто то я не совсем понял, что мне дает Form.ActiveForm?
Если я остановлю проект (нажму на паузу) и просмотрю Form.ActiveForm, то я же ничего не увижу!

Добавь в программу таймер, который раз в секунду сохраняет наименование последней активной формы в локальную переменную класса, из которого выполняется функция Main, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
class Program {

  static string lastFormClassName;

  static void Main() {

    Timer timer = new Timer();
    timer.Interval = 1000;
    timer.Tick += new EventHandler(timer_Tick);
    timer.Start();

...

    Application.Run(...);
  }
  
  private static void timer_Tick(object sender, EventArgs e)  {
    if (Form.ActiveForm != null)
      lastFormClassName = Form.ActiveForm.GetType().FullName;
  }
}

Перед нажатием Ctrl+Break выбираешь нужную форму и ждешь пару секунд, после - смотришь наименование класса в lastFormClassName

--
WBR, Roman S. Golubin
ICQ UIN: 63253392
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как во время исполнения программы узнать имя активной формы? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]