Как я могу узнать, когда отображается форма? - PullRequest
1 голос
/ 17 декабря 2009

Я разрабатываю Windows Mobile 5.0 или выше с .Net Compact Framework 2.0 SP2 и C # .

У меня есть WinForm, который имеет только пользовательский элемент управления. Я хочу вызвать метод этого пользовательского элемента управления после завершения загрузки формы и отобразить элемент управления.

Теперь я использую Активированное событие, но это событие генерируется каждый раз, когда я закрываю окно сообщения.

Есть ли какое-то событие в этот момент?

Спасибо.

Ответы [ 3 ]

6 голосов
/ 18 декабря 2009

Просто используйте событие активации и укажите в своей форме логическое значение, которое установлено в значение true, когда вы вызвали метод в своем пользовательском элементе управления. Когда активированное событие формы запускается снова, вы просто проверяете это логическое значение.

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

Я не думаю, что у вас есть событие Показано в Compact Framework, но вы должны иметь возможность использовать событие Load . Установите для свойства Visible вашей формы значение true, и после этого вы сможете получить доступ к своему пользовательскому элементу управления.

MyForm_Load(object sender, EventArgs e)
{
    ' this procedure runs only once, when the form loads
    ' make the form visible to the user now
    this.Visible = true
    ' the form is now visible

    ' ... more code
}
1 голос
/ 01 июля 2012

Вот что я сделал:

1) Создание пустого пустого элемента управления pictureBox на форме

2) Используйте логическую переменную, чтобы указать, когда событие PictureBox вызывается после события формы Load, и вызвать мою собственную функцию OnShow ()

public partial class MyForm: Form
{
    bool form_shown = false;

    private void MyForm_Load(object sender, EventArgs e)
    {
        form_shown = true;
    }

    private void pictureDummy_Paint(object sender, PaintEventArgs e)
    {
        if (form_shown)
        {
            MyOnShow();
            form_shown = false;    
        }
    }
}
...