С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 49

Развертывание дочерней формы MDI на весь экран

08.09.2016, 14:41. Показов 3167. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Помогите кто знает.
При развертывание дочерней формы на весь экран. Кнопки закрытия и сворачивания в заголовке формы залазят на MenuStrip появляются над ней, сама же MenuStrip опускается ниже.
Как сделать что бы при нажатии кнопки на весь экран, форма разворачивалась ниже меню.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.09.2016, 14:41
Ответы с готовыми решениями:

MDI-формы. Дочерняя форма на весь экран
Суть вопроса такая, использую MDI-формы, главная отрывается во весь экран и... открываю n-ное количество дочерных форм (ну например 3...

ToolStrip MDI-формы съезжает вниз при развертывании дочернего окна на весь экран
Доброго дня! Программно добавляю ToolStrip в родительскую форму MDI. А при разворачивании дочернего окна на всю область ToolStrip родителя...

Позиционирование дочерней формы в MDI-форме
Почему-то дочерняя форма позиционируется по верхнему левому углу MDI-формы и ничего с этим не могу сделать... В чём трабл, не подскажете ?

13
Лень — мое второе и
 Аватар для Orlangur
3226 / 2414 / 687
Регистрация: 28.11.2014
Сообщений: 3,600
Записей в блоге: 3
08.09.2016, 15:24
alle380, покажи скрин
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
08.09.2016, 17:45
а в роли MDI контейнера кто выступает? и не затазит ли этот контейнер под ваше меню?

Добавлено через 59 секунд
alle380, скрин покажи...
0
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 49
08.09.2016, 18:42  [ТС]
Вот скрин.
Миниатюры
Развертывание дочерней формы MDI на весь экран  
0
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 49
08.09.2016, 18:44  [ТС]
Скрин при открытии.
0
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 49
08.09.2016, 18:49  [ТС]
второй
Миниатюры
Развертывание дочерней формы MDI на весь экран  
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
08.09.2016, 19:25
alle380, добавьте панель на форму,чтоб Dock=Fill был ниже ваших ToolBar'ов и выставьте в коде MDIcontainer на Panel1... и тогда получится что кнопки будут наверху панели, то-есть ниже ваших ToolBar'ов
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
08.09.2016, 19:36
Лучший ответ Сообщение было отмечено alle380 как решение

Решение

не с панелью я погоречился, она в роли контейнера не может учавствовать.

Могу предложить такой вариант:
VB.NET
1
2
3
4
        Me.IsMdiContainer = True
        Form2.MdiParent = Me
        Form2.Show()
        Form2.Dock = DockStyle.Fill
Но при этом заголовок формы виден, вы можете убрать кнопки вообще (ControlBox=False), но для сворачивания формы вам придется делать свои дополнительные кнопки.
Миниатюры
Развертывание дочерней формы MDI на весь экран  
1
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 49
10.09.2016, 20:14  [ТС]
Спасибо! В принципе вариант. Осталось только сделать аналогичные кнопки.

Добавлено через 29 минут
К стати как туда закинуть кнопки?
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
10.09.2016, 21:00
alle380, куда?
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
10.09.2016, 21:24
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

вот так?

вызов формы
VB.NET
1
2
3
4
5
6
Me.IsMdiContainer = True
        Form2.MdiParent = Me
        Form2.Show()
        Form2.FormBorderStyle = Windows.Forms.FormBorderStyle.None
        Form2.Dock = DockStyle.Fill
        Form2.Panel1.Visible = True

код формы-2 (на ней панель и две кнопки в ней)
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Class Form2
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Close()
    End Sub
 
    Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        Me.Dock = DockStyle.None
        FormBorderStyle = Windows.Forms.FormBorderStyle.SizableToolWindow
        Panel1.Visible = False
        Width = Form1.Width - 50
        Height = Form1.Height - 100
    End Sub
End Class
0
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 49
10.09.2016, 22:58  [ТС]
Пробовал сделать так. Почему не работает?

VB.NET
1
2
3
4
5
6
7
8
 Private Sub FormShow1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize, MyBase.MaximumSizeChanged
    
        If Me.WindowState = FormWindowState.Maximized Then
 
            Me.Dock = DockStyle.Fill
 
        End If
    End Sub
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4356 / 3426 / 512
Регистрация: 27.01.2014
Сообщений: 6,257
11.09.2016, 07:17
а что именно не работает?
0
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 49
11.09.2016, 09:07  [ТС]
При нажатии кнопки на весь экран, разворачивается также как в моих скринах. Может в как то можно задать этой кнопке другие действия кроме разворачивания?

Добавлено через 24 минуты
Нашел на форуме.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Public Class Form1
 
    Protected Overloads Overrides ReadOnly Property CreateParams() As CreateParams
        Get
            Dim cp As CreateParams = MyBase.CreateParams
            cp.Style = cp.Style And Not &HC00000
            Return cp
        End Get
    End Property
 
    Private m_WindowState As FormWindowState = FormWindowState.Normal
    Private m_FormSizeAndLocation As Rectangle = Rectangle.Empty
 
    Private Sub ChangeWindowState(ByVal p_NewState As FormWindowState)
        Me.WindowState = FormWindowState.Normal
        Select Case p_NewState
            Case FormWindowState.Maximized
                If m_WindowState = FormWindowState.Normal Then
                    m_FormSizeAndLocation.Location = Me.Location
                    m_FormSizeAndLocation.Size = Me.Size
                End If
                Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
                Me.Size = SystemInformation.WorkingArea.Size
                Me.Location = SystemInformation.WorkingArea.Location
                Exit Select
            Case FormWindowState.Minimized
                Me.WindowState = FormWindowState.Minimized
                Exit Select
            Case FormWindowState.Normal
                Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable
                Me.Location = m_FormSizeAndLocation.Location
                Me.Size = m_FormSizeAndLocation.Size
                Exit Select
        End Select
        m_WindowState = p_NewState
    End Sub
 
    Private Sub ButtonMinimize_Click_1(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonMinimize.Click
        ChangeWindowState(FormWindowState.Minimized)
    End Sub
 
    Private Sub ButtonMaximize_Click_1(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonMaximize.Click
        If m_WindowState = FormWindowState.Maximized Then
            ChangeWindowState(FormWindowState.Normal)
            ButtonMaximize.Text = "Max"
        Else
            ChangeWindowState(FormWindowState.Maximized)
            ButtonMaximize.Text = "Res"
        End If
    End Sub
 
    Private Sub ButtonClose_Click(ByVal sender As Object, ByVal e As EventArgs)
        Close()
    End Sub
 
    Public Sub New()
        InitializeComponent()
        AddHandler panel1.MouseDown, AddressOf panel1_MouseDown
        AddHandler panel1.MouseMove, AddressOf panel1_MouseMove
        AddHandler panel1.MouseUp, AddressOf panel1_MouseUp
        AddHandler panel1.MouseDoubleClick, AddressOf panel1_MouseDoubleClick
 
    End Sub
    Private m_MousePressed As Boolean = False
    Private m_oldX As Integer, m_oldY As Integer
    Sub panel1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
        Dim TS As Point = Me.PointToScreen(e.Location)
        m_oldX = TS.X
        m_oldY = TS.Y
        m_MousePressed = True
    End Sub
    Sub panel1_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
        m_MousePressed = False
    End Sub
    Sub panel1_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
        If m_MousePressed = True AndAlso m_WindowState <> FormWindowState.Maximized Then
            Dim TS As Point = Me.PointToScreen(e.Location)
            Me.Location = New Point(Me.Location.X + (TS.X - m_oldX), Me.Location.Y + (TS.Y - m_oldY))
            m_oldX = TS.X
            m_oldY = TS.Y
        End If
    End Sub
    Sub panel1_MouseDoubleClick(ByVal sender As Object, ByVal e As MouseEventArgs)
        ButtonMaximize_Click_1(ButtonMaximize, New EventArgs())
    End Sub
 
    Private Sub ButtonClose_Click_1(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonClose.Click
        Close()
    End Sub
 
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
    End Sub
End Class
Код не плохо работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.09.2016, 09:07
Помогаю со студенческими работами здесь

MDI Как передать данные в контрол дочерней формы?
Здравствуйте! Надо написать на C#.net MDI приложение. В нём mdi-контейнер и одна дочерняя форма. В дочерней форме 4 элемента textBox ...

Как передать данные из MDI дочерней формы к Родительской форме?
У меня есть проект, который содержит основную форму/Main/.Из главной формы с помощью кнопки я открываю form2 Dim Form As New Form2() ...

Как убрать кнопки сворачивания, закрытия с дочерней MDI формы
Всем привет. Имеется одна главная форма и несколько MDI дочерних. Все хорошо работает, открывается. Но необходимо, чтоб в дочерних формах...

Развертывание JFrame на весь экран
Здравствуйте Уважаемые форумчане. Код для развертывания JFrame на весь экран за минусом размера панель задач. Dimension screenSize...

Как запретить редактирование размера окна, а также его развёртывание на весь экран?
День всем добрый! Окно создаётся, если я не ошибаюсь, такими строками: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru