Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Неправильное отображение дочерних форм Добавлено: 09.04.07 23:39  

Автор вопроса:  BG(Алексей)
Здравствуйте!
Я новичок, в програмировании (около недели). Использую VB 2005 EXPRESS
Прошу овъяснить и сильно не наезжать.

На форме:
StatusStrip, ToolStrip, MenuStrip, NotifyIcon
Делаю так:
Module Module1
    Public Child1 As New form1
    Public Child2 As New form2
End Module


Imports System.Windows.Forms

Public Class frmMDI

    Private Sub MDI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Child1.MdiParent = Me
        Child1.Show()
        Child2.MdiParent = Me
        Child2.Show()

    End Sub


    Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
        Me.Close()
    End Sub

End Class


Дочерняя1:

Public Class form1

    Inherits System.Windows.Forms.Form


    Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Location = New Drawing.Point(0, 0)
        Me.WindowState = FormWindowState.Maximized
        Me.ControlBox = False
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Child2.Focus()
    End Sub
End Class


Дочерняя2:

Public Class form1

    Inherits System.Windows.Forms.Form


    Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Location = New Drawing.Point(0, 0)
        Me.WindowState = FormWindowState.Maximized
        Me.ControlBox = False
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Child2.Focus()
    End Sub
End Class


Вопрос:
Почему, при первой загрузке, формы прячуться под МенюСтрип,
а после нажатия кнопки на дочках, перересовываються на новое место.
Сразу скажу, что я менял значения Me.Location = New Drawing.Point(0, 0),
а также ексепементировал с МЕ.ТОР =,
но никаких изменений не было.
Изменения происходят при смене фокуса или изменении размеров Родителя.

Ответить

  Ответы Всего ответов: 17  

Номер ответа: 1
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #1 Добавлено: 12.04.07 01:38
Не могу понять, вопрос сложный или глупый?
Почему, за двое суток, из 36 посмотревших так и не получил ответ?

Ответить

Номер ответа: 2
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #2
Добавлено: 12.04.07 11:27
StartPosition ...

Ответить

Номер ответа: 3
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #3 Добавлено: 13.04.07 04:48
Пробовал, не работает.

Ответить

Номер ответа: 4
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #4
Добавлено: 13.04.07 08:54
Странно,
1)покажи код
2)как именно пробовал? Manual? по центру экрана?

Ответить

Номер ответа: 5
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #5
Добавлено: 13.04.07 09:19
1)покажи код
прошу прощения, совсем уже обленился и забыл посмотреть наверх странички))

1)
Почему, при первой загрузке, формы прячуться под МенюСтрип
так это ж дочерние формы, вот они и перерисовываются под меню

2)
а после нажатия кнопки на дочках, перересовываються на новое место.
а на какое новое место они перерисовываются? По идее они у тебя просто должны меняться местами

3)Однако, не понятно где есть класс Form2, так как я вижу два раза класс Form1?

Ответить

Номер ответа: 6
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #6
Добавлено: 13.04.07 09:23
А, вот еще чтоя не заметил:

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

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

Ответить

Номер ответа: 7
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #7 Добавлено: 15.04.07 02:45
3)Однако, не понятно где есть класс Form2, так как я вижу два раза класс Form1?

Это машинально.Нужно поменять Form1 на Form2
И Child2.Focus() на Child1.Focus()
а на какое новое место они перерисовываются?

Они выезжают из под менюстрип.

Ответить

Номер ответа: 8
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #8
Добавлено: 15.04.07 21:23
так это ж дочерние формы, вот они и перерисовываются под меню


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

Ответить

Номер ответа: 9
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #9 Добавлено: 16.04.07 05:37
У меня 5 дочерних форм, на них много всяких кнопок и текстбоксов, а также, в location(0,0) стоит пикчербокс.
В своем вопросе я описал только 2 формы, так как остальные примерно одинаковые.
Так вот, при первой загрузке программы, все формы прячутся поб менюстрип,а при изменении размеров MDI формы или смене фокуса дочерней формы перерисовываються на новое место location(-4,0) или location (-4,-4)
Может я неправильно обьясняю? Но если Вы напишете выше приведенный код, то сразу все поймете.

Ответить

Номер ответа: 10
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #10 Добавлено: 16.04.07 05:42
Обнаружил я это по pictureBox.
При стартапе менюстрип перекрывает картинку, а при смене фокуса или изменении MDI размеров картинка отображается корректно.

Ответить

Номер ответа: 11
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #11
Добавлено: 16.04.07 13:52
У меня при стартапе все отображается корректно:

Public Class Form2
    Inherits System.Windows.Forms.Form
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Location = New Drawing.Point(0, 0)
        Me.WindowState = FormWindowState.Maximized
        Me.ControlBox = False
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Child2.Focus()
    End Sub

    Private Sub Form2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        'рисуем линию, чтобы проверить, где находится начало координат
        e.Graphics.DrawLine(Pens.Black, 0, 0, 100, 100)
    End Sub
End Class


Public Class Form3
    Inherits System.Windows.Forms.Form
    Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Location = New Drawing.Point(0, 0)
        Me.WindowState = FormWindowState.Maximized
        Me.ControlBox = False
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Child1.Focus()
    End Sub

    'рисую на пикчербоксе, который имеет location 0,0
    'тоже чтобыпровеить начало координат, все отображаетс успещно
    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        e.Graphics.DrawLine(Pens.Black, 0, 0, 100, 100)
    End Sub
End Class

Ответить

Номер ответа: 12
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #12 Добавлено: 17.04.07 01:38
А при смене фокуса с Child1 на Child2?

Ответить

Номер ответа: 13
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #13
Добавлено: 17.04.07 18:22
формы меняются местами и все опять таки рисуется правильно

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

Ответить

Номер ответа: 14
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #14 Добавлено: 18.04.07 02:54
Ok, попробуюю

Ответить

Номер ответа: 15
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #15 Добавлено: 19.04.07 16:48
Попробовал Ваш код, всё тоже самое.
Линия рисуется не из угла при стартапе, но после смены фокуса перерисовывается четко из угла.
Ладно, забыли.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам