Модераторы: diadiavova, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему дочерняя форма не едет влево 
:(
    Опции темы
transparent
Дата 25.6.2011, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



пробовал..Хорошо получается. Попробуй создать форму (в дизайнере), а потом с ней проделать тоже самое
PM MAIL   Вверх
diadiavova
Дата 25.6.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(transparent @  25.6.2011,  13:28 Найти цитируемый пост)
 Попробуй создать форму (в дизайнере), а потом с ней проделать тоже самое 

По-твоему я это пробую впервые что ли? smile Какая разница-то?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
diadiavova
Дата 25.6.2011, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Вот тебе пример. Любуйся.

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  ChildForm2.rar 63,64 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
transparent
Дата 26.6.2011, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



ну я все так же и сделал, но у меня она куда то исчезает.....МОжет и правду у нее координаты уносятся
PM MAIL   Вверх
diadiavova
Дата 26.6.2011, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(transparent @  26.6.2011,  21:23 Найти цитируемый пост)
ну я все так же и сделал, но у меня она куда то исчезает.....МОжет и правду у нее координаты уносятся 

Почему не работает у тебя я тебе расскажу когда свой хрустальный шар найду.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
transparent
Дата 26.6.2011, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



вообщем если вызываю этим способом из тоолстрип то формы исчезают. Сейчас на кнопку поставил, и все нормально, но на форме ричтекстбокс - и он его перекрывал, почему? То есть форма2 была под ричтекстбоксом..
PM MAIL   Вверх
diadiavova
Дата 26.6.2011, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Это зависит от порядка добавления элементов в форму: если ричтекстбокс ты добавил позже, то он будет сверху. Вообще у всех контролов(включая форму) есть методы BringToFront и SendToBack. Вызови у своей формы первый из них и она окажется сверху.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
transparent
Дата 29.6.2011, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



diadiavova,  А почему теперь когда я ставлю какой нить код в событие(формы2) допустим нажатия мышки по форме 2 - то код не срабатывает, ?
И как сие исправить?
PM MAIL   Вверх
diadiavova
Дата 29.6.2011, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(transparent @  29.6.2011,  19:44 Найти цитируемый пост)
А почему теперь когда я ставлю какой нить код в событие(формы2) допустим нажатия мышки по форме 2 - то код не срабатывает, ?

Потому что ты что-то делаешь неправильно
Цитата(transparent @  29.6.2011,  19:44 Найти цитируемый пост)
И как сие исправить? 

Сделать правильно.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
transparent
Дата 29.6.2011, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



сделал как ты и писал

Вызываю вторую форму из первой формы по клику по кнопке
Код

Dim chF As New Form2
        chF.TopLevel = False
        Me.Controls.Add(chF)
        chF.BringToFront()
        chF.Size = New Size(chF.Width, Me.ClientSize.Height - (ToolStrip1.Height + StatusStrip1.Height))
        chF.Location = (New Point(Me.ClientSize.Width, Me.ClientSize.Height - (chF.Height + ToolStrip1.Height - 3)))
        chF.Show()


Форма появилась. Все нормально. Пытаюсь сделать так: когда мышь ушла с формы2 то форма2 закрывается, да или просто месадж хотя бы отобразит

Код

Private Sub Form2_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseLeave
        Close()
    End Sub

PM MAIL   Вверх
diadiavova
Дата 29.6.2011, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Надо же: достаточно было дать телепатический ответ на твой телепатический вопрос, как ты сразу все понял.
Цитата(transparent @  29.6.2011,  21:02 Найти цитируемый пост)
Пытаюсь сделать так: когда мышь ушла с формы2 то форма2 закрывается, да или просто месадж хотя бы отобразит

В данном случае ты подписываешься на событие главной формы, той в которой написан код, да и закрываешь ты тоже ее.
Разве ты не понимаешь, что каждое событие связано с каким-то объектом? У главной формы свой набор событий, у дочерней - свой, пусть они даже одинаковые, но происходят в разное время. Тебе надо подписаться на событие дочерней формы и закрывать тоже ее, а не главную. Для этого объявлять переменную надо на уровне класса, а не внутри метода и с ключевым словом WithEvents. Тогда она будет доступна в списке объектов и студия создаст обработчик. Можно сделать и внутри метода, но с помощью оператора AddHandler (смотри в документации). И не Close, а chF.Close, если ты хочешь закрыть именно ее.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
transparent
Дата 30.6.2011, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



не получается...:(
Пробовал по разному...но все это больше смахивает на бред

Так я тоже пробовал chF.Close,
Цитата

и закрывать тоже ее, а не главную

Хотя бы главная закрылась smile а то ничего не происходит(но это мне не нужно)

И на уровне класса объявлял, и обработчики добавлял(не единовременно)

Мне кажется тут дело в toplevel and controls.add...или нет?
Но в любом случае я что то делаю не так...

Приводить примеры тут не буду, так как я быстро набрасывал код в проект и стирал, дабы написать следующий



Можешь привести рабочий пример, плиз

PM MAIL   Вверх
diadiavova
Дата 30.6.2011, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Вот это пишешь на уровне класса
Код

Dim WithEvents chF As New Form2

Вот это в обработчике события Load главной формы
Код

        chF.TopLevel = False
        Me.Controls.Add(chF)
        chF.BringToFront()
        chF.Size = New Size(chF.Width, Me.ClientSize.Height - (ToolStrip1.Height + StatusStrip1.Height))
        chF.Location = (New Point(Me.ClientSize.Width, Me.ClientSize.Height - _
                                                                 (chF.Height + ToolStrip1.Height - 3)))
        chF.Show()


Так выглядит обработчик
Код

Private Sub Form2_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles chF.MouseLeave
        chF.Close()
    End Sub

Почти все скопировал у тебя, малость изменив. Если не сработает, попробуй с другим событием(например Click), поскольку я не знаю наверняка, поддерживает ли форма MouseLive

Это сообщение отредактировал(а) diadiavova - 30.6.2011, 20:28


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
diadiavova
Дата 30.6.2011, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
transparent
Дата 1.7.2011, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.5.2011

Репутация: нет
Всего: нет



Цитата

Вот это пишешь на уровне класса

Все это я и так делалsmile

Цитата

Я попробовал это сделать сам и поначалу тоже возникла эта проблема. Потом оказалось, что дело было в том, что сама форма там была не видна. То есть она была залита другим контролом и по сути на саму форму не попадала мышь, 

Вот и у меня таже проблема...
Только вторая форма видна, и мышь на нее нажимается(по крайней мере ее можно смело таскать), а вот события нажатия не происходит

И что же ты в итоге сделал? Ты мне это на задачку оставил что ли? Может на нее нужно фокус передать , отя это не пройдет, она может иполучит фокус, да только его все равно мы не увидим
Так как же ты это дело исправил?

PM MAIL   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0824 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.