Выплывающая форма
От: slagovskiy  
Дата: 01.06.07 09:10
Оценка:
Проект из одной формы, нужно что бы при загрузке форма пряталась за границы экрана и оставляла бы маленький "хвостик" при наведении на который форма бы показывалась.
Используются два события MouseMove и MouseLeave, при наведении мышкой на форму ей присваиваются координаты в пределах видимости, а при убирании мышки с формы другии координаты.


private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    this.Top = 0;
}

private void Form1_MouseLeave(object sender, EventArgs e)
{
    this.Top = (-1 * this.Height) + 7;
}

private void Form1_Load(object sender, EventArgs e)
{
    this.Top = (-1 * this.Height) + 7;
}


но если на форме есть какие нибудь элементы, то при наведении на них мышкой срабатывает событие Form1_MouseLeave и форма исчезает.
Подскажите как быть, не хочется для каждого элемента формы создавать обработчики на MouseMove и MouseLeave.
Re: Выплывающая форма
От: Pentx  
Дата: 01.06.07 10:34
Оценка:
Здравствуйте, slagovskiy, Вы писали:

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

S>Используются два события MouseMove и MouseLeave, при наведении мышкой на форму ей присваиваются координаты в пределах видимости, а при убирании мышки с формы другии координаты.

В Leave проверь, находится ли мышь в прямоугольнике формы
Re[2]: Выплывающая форма
От: Мартыненко Сергей Украина  
Дата: 01.06.07 10:56
Оценка:
Здравствуйте, Pentx, Вы писали:

P>Здравствуйте, slagovskiy, Вы писали:


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

S>>Используются два события MouseMove и MouseLeave, при наведении мышкой на форму ей присваиваются координаты в пределах видимости, а при убирании мышки с формы другии координаты.

P>В Leave проверь, находится ли мышь в прямоугольнике формы

а что делать если контрол, допустим ComboBox, отобразил список который выходит за рамки окна?
Re[3]: Выплывающая форма
От: slagovskiy  
Дата: 04.06.07 02:35
Оценка:
Здравствуйте, Мартыненко Сергей, Вы писали:

P>>В Leave проверь, находится ли мышь в прямоугольнике формы

МС>а что делать если контрол, допустим ComboBox, отобразил список который выходит за рамки окна?

Во во. Именно так. Та же проблема с календарем.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Выплывающая форма
От: slagovskiy  
Дата: 04.06.07 02:35
Оценка:
Здравствуйте, slagovskiy, Вы писали:

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

S>Используются два события MouseMove и MouseLeave, при наведении мышкой на форму ей присваиваются координаты в пределах видимости, а при убирании мышки с формы другии координаты.


S>
S>private void Form1_MouseMove(object sender, MouseEventArgs e)
S>{
S>    this.Top = 0;
S>}

S>private void Form1_MouseLeave(object sender, EventArgs e)
S>{
S>    this.Top = (-1 * this.Height) + 7;
S>}

S>private void Form1_Load(object sender, EventArgs e)
S>{
S>    this.Top = (-1 * this.Height) + 7;
S>}

S>


S>но если на форме есть какие нибудь элементы, то при наведении на них мышкой срабатывает событие Form1_MouseLeave и форма исчезает.

S>Подскажите как быть, не хочется для каждого элемента формы создавать обработчики на MouseMove и MouseLeave.


Проболжение мыслей.

Добавил перебор всех элентов на форме и добавление обработки этих двух событий, но при разворачивании списка или календаря и перемещении мышки на них происходит событие MouseLeave и форма убегает.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.