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

Поиск:

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

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

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


 




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


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

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