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

Поиск:

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


Бывалый
*


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

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



Захотел я сделать как в студии VS. А именно если у Вас окошко свойств находится в состояние "автоматически скрывать" - то когда наводишь на панельку мышь - то выезжает окошко свойств (допустим это форма 2)

Так вот, решил я так же сделать..
С помощью АПИ функции SetParent сделал вторую форму дочерней по отношению к главной(первой), и при загрузки второй формы(а вызвается она наведением мыши на бутон на первой форме) - поставил включение таймера - а в таймере что то вроде этого Me.left -=1 ..

Но форма почему то вообще вниз и вправо улезает, при чем так присходит как если из главной формы установить родителя (при помощь Сетпарент), так и из второй (при загрузке второй формы - вторая форма устанавливается как дочерняя)

Почему она не двигается влево как положенно?

ПС, Если не использовать АПИ функцию то код для отправления второй формы влево - работает нормально....Но не подходит, так как нужно чтобы форма 2 не выходила за рамки первой формы, и могла заходить за края первой формы(так красивее вообщем)


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


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


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

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



Загрузи вот этот проект 
http://sourceforge.net/projects/dockpanelsuite/
и не парься. То, что ты хочешь сделать на самом деле не так просто реализуется.


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


Бывалый
*


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

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



diadiavova, И что мне дает этот проект? Верю что не просто так. Но если бы мне понять почему так окно не правильно едет, то было бы легче справиться, по крайней мере в моем направлении
PM MAIL   Вверх
diadiavova
Дата 21.6.2011, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(transparent @  21.6.2011,  21:04 Найти цитируемый пост)
 И что мне дает этот проект?

То, что не придется изобретать велосипед.
Цитата(transparent @  21.6.2011,  21:04 Найти цитируемый пост)
 Но если бы мне понять почему так окно не правильно едет, то было бы легче справиться, по крайней мере в моем направлении 

Если интересно как это устроено, возьми этот проект и посмотри код. Оупенсорс все таки.


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


Бывалый
*


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

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



Цитата

Оупенсорс все таки.

я скачал там тока ехешник и длл
PM MAIL   Вверх
diadiavova
Дата 21.6.2011, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Там на панели навигации есть пункт Code

Добавлено через 2 минуты и 50 секунд
А точнее скачай отсюда
http://sourceforge.net/projects/dockpanels...%20Suite/2.4.0/
Качай ту ссылку, в имени которой присутствует слово Source


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


Бывалый
*


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

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



не пойму где...Там есть только один пунктик с code и то там не одно слово
PM MAIL   Вверх
diadiavova
Дата 21.6.2011, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Ну вот по этой ссылке грузи
http://sourceforge.net/projects/dockpanels...ce.zip/download


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


Бывалый
*


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

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



Слушай, Дядь Вов, а почему почти все примеры в МСДН сделаны с console...Это предполагает что примеры нужно запускать как "консольное приложение" (то есть наверно не запускать , а создавать не винформс а консольное приложение"), да?

Добавлено через 3 минуты и 32 секунды
оо, спасиб, теперь есть, там тока c#?
PM MAIL   Вверх
diadiavova
Дата 21.6.2011, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(transparent @  21.6.2011,  22:40 Найти цитируемый пост)
Слушай, Дядь Вов, а почему почти все примеры в МСДН сделаны с console...

Не все. Просто для примера это удобнее: ничего лишнего и на надо объяснять что должно быть на форме.
Цитата(transparent @  21.6.2011,  22:40 Найти цитируемый пост)
то предполагает что примеры нужно запускать как "консольное приложение" (то есть наверно не запускать , а создавать не винформс а консольное приложение"), да?

Если ты хочешь скопипастить и чтоб работало, то да. Но вообще примеры даются для того, чтобы ты мог разобраться в вопросе и написать свой код: хошь в консоли, хошь в винформе, хош в впф, или как угодно еще. 
Цитата(transparent @  21.6.2011,  22:40 Найти цитируемый пост)
 там тока c#? 

Да. Можешь поискать еще, на сорсфорже или на кодплексе. Это называется интерфейс Doking. В принципе есть и другие реализации, но под винформы это лучшее, что мне попадалось.


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


Бывалый
*


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

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



спасибо, погляжу, а что такое впф 
PM MAIL   Вверх
diadiavova
Дата 21.6.2011, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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





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


Бывалый
*


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

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



спасиб, погляжу, это же не то же что и WMI? WMI  это же скрипт? а это что в 2 словах?
PM MAIL   Вверх
diadiavova
Дата 21.6.2011, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(transparent @  21.6.2011,  23:08 Найти цитируемый пост)
а это что в 2 словах? 

Замена винформам.


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


Бывалый
*


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

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



Коду конечно обалделдеть скока....

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


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


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

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



Цитата(transparent @  22.6.2011,  19:38 Найти цитируемый пост)
нужно лишь понять почему форма не едет влево при SetParent 

Возможно потому, что это не предусмотрено? smile 


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


Бывалый
*


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

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



Код

Public Class Form2

    Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Integer, ByVal hWndNewParent As Integer) As Integer

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SetParent(Me.Handle.ToInt32, Form1.Handle.ToInt32)
        Me.Location = New Point(Form1.ClientSize.Width, Form1.ClientRectangle.Size.Height - Me.Height)

        Timer1.Interval = 30
        Timer1.Start()

        'без сетпарента
        'Me.Location = New Point(Form1.Left + Form1.Width - Me.Width, Me.Top + Form1.ClientSize.Height - Me.Height)
        ' или за границей видимости(формы1) Me.Location = New Point(Form1.Left + Form1.Width, Me.Top + Form1.ClientSize.Height - Me.Height)
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If Me.Left < Form1.Width - Me.Width Then
            sender.stop()
        End If
        Me.Left = Me.Left - 3
    End Sub

End Class



вызываю форм2 из форм1 как то так
Код

   Dim ff As New Form2
здесь я пробывал устанавливать родителя/сына в форме1, но эффект тоже
        'SetParent(Form2.Handle.ToInt32, Me.Handle.ToInt32)
        'Form2.Location = New Point(Me.ClientSize.Width - Form2.Width, Me.ClientRectangle.Size.Height - Form2.Height)
        Form2.Show(Me)

Это происходит загрузка второй формы, которая сразу же становится дочерней, и встает справого края первой формы, и должна двигаться влево, а она двигается вправо smile 

Если не использовать Сетпарент функцию то все в порядке как и должно быть...Но там мне не нравится, да и писать дополнительно нужно...ЧТобы форма вторая не была видна сначала а потом покускам начала проявляться и был эффект как в студии....
А сетпарентом этого делать ненужно, форма2 является дочерней(как если бы мы сделал мди проект), и если она за краем формы 1 - то ее правый край(формы2) не виден, в отличие если бы форма2 была не дочерней, она бы просто вставала рядом с форм1 и ехала..

Можете хотя бы потестить у себя, может чего надумаете, а?
PM MAIL   Вверх
diadiavova
Дата 24.6.2011, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



transparent, можешь хотя бы объяснить зачем ты этим занимаешься? Ты ведь видел реализацию, там все не так просто, неужели тебе мало? Я могу объяснить как разместить форму внутри другого контейнера(если тебе это нужно, хотя я не уверен, что понял чего ты хочешь), только зачем тебе это?


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


Бывалый
*


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

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



Объясни если можешь! Буду рад.

А зачем?Ну хочу чтобы форма ехала и всего то...А при применении этой функции все сбивается нафик..И меня это бесит, вот и пытаюсь разобраться в чем дело
Я же не пытаюсь сделать как в том проекте на #, мне это хотя бы реализовать..
PM MAIL   Вверх
diadiavova
Дата 24.6.2011, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



У формы есть свойство TopLevelControl (если не ошибаюсь с названием). Если  ты установишь его в Fale, то сможешь добавить в любой контейнер тем же способом, которым добавляется любой другой контрол( добавлением формы в коллекцию Controls контейнера или присвоением контейнера свойству Parent формы).


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


Бывалый
*


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

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



show(me)  не подойдет добавить так ?
PM MAIL   Вверх
diadiavova
Дата 24.6.2011, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(transparent @  24.6.2011,  18:23 Найти цитируемый пост)
show(me)  не подойдет добавить так ? 

Если тебя устроит результат, делай так. Зачем ты тогда спрашиваешь как сделать, если у тебя есть свое решение?


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


Бывалый
*


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

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



затем что такой результат не устраивает

Добавлено через 11 минут и 6 секунд
топлевел, топлевелконтрол, поюзал, нифига не выходит со вторым вообще, а с первым пропадает форма либо первая, либо вторая
PM MAIL   Вверх
diadiavova
Дата 24.6.2011, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(transparent @  24.6.2011,  20:16 Найти цитируемый пост)
 нифига не выходит со вторым вообще, а с первым пропадает

С каким вторым? С каким первым? Ты о чем вообще? smile 


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


Бывалый
*


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

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



способом!
Я не понял как ты хотел сделать.
Я сделал так. Form2.Toplevel = false - и форма2 пропадает при загрузке, а ToplevelControl - получает родительский элемент....
PM MAIL   Вверх
diadiavova
Дата 24.6.2011, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Сделай так же как в аттаче.

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  ChildForm.rar 58,16 Kb


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


Бывалый
*


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

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



   Dim f2 As New Form2
        f2.TopLevel = False
        Me.Controls.Add(f2)
        f2.Show()

Вообще все исчезает...

Ты создаешь новую форму...А у меня она уже создана...
PM MAIL   Вверх
diadiavova
Дата 25.6.2011, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(transparent @  25.6.2011,  00:41 Найти цитируемый пост)
Ты создаешь новую форму...А у меня она уже создана... 

И что ты предлагаешь, чтобы у меня в приложении появлялась форма из твоего приложения что ли? smile
Сделай так же. Почему у меня ничего не исчезает? Запусти мой проект из папки дебаг и посмотри, там все появляется.


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


Бывалый
*


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

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



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

У твоего проекта все в порядке. Но мне нужен другой результат. Если испольщзовать твой код, то моя форма пропадает, если же поменять переменные объектов(имена) то происходит практически тоже самое)

Что тут необчного? Мне нужно чтобы вторая форма отобразилась в контейнере первой, и не выходила за рамки первой, не просто по указанию, а потому что она является дочерней, со всеми истекающими отсюда(всегда поверх родильской, если задвинуть за грань первой - то дочерняя на половину пропадет(на ту половину на которую завели за край первой))....ну и т.д. А ты предложил создание новой формы и т.д. А моя форма уже создана. И  с ней это не проходит...НО имхо я могу и тормозить и не догонять, я человек, тем более дотошный, бу
PM MAIL   Вверх
diadiavova
Дата 25.6.2011, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(transparent @  25.6.2011,  02:35 Найти цитируемый пост)
думаешь совсем чтоли дуб

user posted image
Цитата(transparent @  25.6.2011,  02:35 Найти цитируемый пост)
это еще не говорит о том что кто то из нах странный

Ты однозначно странный, даже не сомневайся. Если бы не думал, что ты странный, то уже забанил бы тебя за троллинг.
Цитата(transparent @  25.6.2011,  02:35 Найти цитируемый пост)
Я дотошный, а ты не можешь сразу ответить на обычные вещи, хоть и в обученических целях.

Да я тебе сразу отвечаю и причем по нескольку раз, а ты один хрен переспрашиваешь. Возьми тему про функции, я тебе что непонятно сразу объяснил, что после Return возвращается результат, а после присвоения нет? И перечитай, какую белиберду ты после этого начал писать? Или в теме про конфиг, ну несколько раз написал, что не из папки дебаг удалил файл, так нет же опять 25 - "а помнишь, ты писал, что удалил из дебага?". Ты считаешь это нормально? Еще при живом общении можно подумать, что ты чего-то не расслышал, но здесь кто мешает перечитать, если не понял с первого раза? smile 
Цитата(transparent @  25.6.2011,  02:35 Найти цитируемый пост)
У твоего проекта все в порядке. Но мне нужен другой результат.

Я понятия не имею, какой именно результат тебе нужен. Я тебе написал, что если тебе надо разместить форму в другом контейнере, то могу описать как это сделать и там ничего не было о том, что напишу как получить тот результат, который тебе нужен.
Цитата(transparent @  25.6.2011,  02:35 Найти цитируемый пост)
Если испольщзовать твой код, то моя форма пропадает

Скорей всего она просто находится за пределами видимости, установи локейшн так чтобы она не вылазила за пределы контейнера.
Цитата(transparent @  25.6.2011,  02:35 Найти цитируемый пост)
если же поменять переменные объектов(имена) то происходит практически тоже самое)

А что по-твоему должно измениться при изменении имен? Каким образом имена должны влиять на поведение smile 
Цитата(transparent @  25.6.2011,  02:35 Найти цитируемый пост)
всегда поверх родильской, если задвинуть за грань первой - то дочерняя на половину пропадет(на ту половину на которую завели за край первой

А ты в моем примере пробовал двигать дочернюю форму?


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


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


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

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



Цитата(transparent @  1.7.2011,  14:37 Найти цитируемый пост)
Только вторая форма видна, и мышь на нее нажимается(по крайней мере ее можно смело таскать), а вот события нажатия не происходит

При чем тут видна или нет? И при чем тут можно ее таскать или нет? Я же пояснил, что значит была не видна форма
Цитата(diadiavova @  30.6.2011,  22:44 Найти цитируемый пост)
 То есть она была залита другим контролом и по сути на саму форму не попадала мышь

Если у тебя на форме, например, расположена какая-нибудь панель, то мышкой ты водишь не над формой, а над этой панелью и происходят события панели, а не формы. Чониясна? События формы происходить будут только если видна клиентская часть формы, то есть та, на которой расположены контролы.


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


Бывалый
*


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

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



ну и как исправить ситуацию? я не могу понять
PM MAIL   Вверх
diadiavova
Дата 1.7.2011, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(transparent @  1.7.2011,  17:45 Найти цитируемый пост)
ну и как исправить ситуацию? 

Вообще-то ситуацию ты как бы и не описал. Для того, чтобы отлавливалось вышеозначенное событие, тебе придется либо очистить форму, либо отлавливать события тех элементов управления, которые на ней расположены. Вообще в винформах такая задача общего решения не имеет. Тут надо смотреть по конкретному случаю. Но общий принцип в том, что отлавливаешь события контролов, расположенных на форме. В впф все проще.


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


Бывалый
*


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

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



да что же это такое люди творится то а...smile
Ты можешь кодом помочь? чтобы я понял как можно сделать так:-
Вызвал я вторую форму - далее навел на нее мышь, после того как мышь увел - эта (вторая) форма исчезла(клосе, найд, не важно)..
PM MAIL   Вверх
diadiavova
Дата 2.7.2011, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(transparent @  2.7.2011,  13:59 Найти цитируемый пост)
Ты можешь кодом помочь?

Не думаю, что тебе это поможет. Я тебе проблему разжевал уже просто дальше некуда. Могу просто выложить пример, в котором будет простейший код и все будет работать, но готов биться об заклад, что ты тут же нарисуешься и начнешь жаловаться, что мой пример работает, а твой не хочет. Ты не читаешь, что я тебе пишу, а ждешь готовых решений, а когда получаешь их, просто не можешь ими воспользоваться. Я тебе объяснил причину, но что тебе еще надо я понять не могу.

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

Это сообщение отредактировал(а) diadiavova - 2.7.2011, 13:30

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


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


Бывалый
*


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

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



спасибо, посмотрю
Цитата

программирование - это не твое, не стоит тебе этим заниматься.

больше я тебя не потревожу smile 
PM MAIL   Вверх
diadiavova
Дата 2.7.2011, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(transparent @  2.7.2011,  16:10 Найти цитируемый пост)
больше я тебя не потревожу

А ты меня и так не тревожишь. Вопросы задавай, тут и кроме меня есть и другие участники, которые могут ответить.


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

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

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


 




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


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

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