Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2011, 12:32   #1
maryan.vetrov
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 75
По умолчанию Поведение дочерних окон

Доброго времени суток.
Суть вопроса такова. Есть родительская форма, она при запуске автоматически растягивается на весь экран, использовано свойство windowSate - maximize, есть форма1, она автоматически загружается вместе с родительской и тоже растягивается на весь экран, а есть форма2, форма3,... и т.д., они вызываются по средством меню и тоже почему-то растягиваются на весь экран, а мне это не нужно, а если сворачиавю одно из них до нормального размера, то и все остальные также сворачиваются, кроме родительского.
Прошу помощи, разобраться!
maryan.vetrov вне форума Ответить с цитированием
Старый 27.02.2011, 13:04   #2
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

чет неправильно намутили с созданием и открытием дочерних окон
так надо
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.IsMdiContainer = true;
           

        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Form2 chForm2 = new Form2();
            chForm2.MdiParent = this;
            chForm2.Show();
        }

        private void форма2MDIToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form3 chForm3 = new Form3();
            chForm3.MdiParent = this;
            chForm3.Show();
        }

        private void форма3MDIToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form4 chForm4 = new Form4();
            chForm4.MdiParent = this;
            chForm4.Show();
        }

             
    }
}
полный исходник проекта http://zalil.ru/30577964
wm_leviathan вне форума Ответить с цитированием
Старый 27.02.2011, 15:14   #3
maryan.vetrov
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от wm_leviathan Посмотреть сообщение
чет неправильно намутили с созданием и открытием дочерних окон
так надо...

[/CODE]
Да нет, ничего я не мутил, сделал все как положено.
maryan.vetrov вне форума Ответить с цитированием
Старый 27.02.2011, 16:24   #4
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

посмотрите мой исходник. там все 3 MDI окна работают нормально как и не зависимы друг от друга. заодно сравните со своим найдете где ошибка.
wm_leviathan вне форума Ответить с цитированием
Старый 27.02.2011, 17:00   #5
maryan.vetrov
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от wm_leviathan Посмотреть сообщение
посмотрите мой исходник. там все 3 MDI окна работают нормально как и не зависимы друг от друга. заодно сравните со своим найдете где ошибка.
Позвольте, я смотрел ваш исходник, но у вас там, все формы типа Normal.
А вы задайте, для родительского окна, тип Maximized, сделайте так, чтобы вторая форма, которая у вас загружается вместе с родительским, автоматом разварачивалась на весь экран, а вот остальные, которые отображаются через меню, отображились в нормальном размере, а не на весь экран, как родительская и первая форма.

Потому как, если родительскую по умолчанию делать Maximized, а все остальные не трогать, оставить по умолчанию Normal, то и у меня все работает. Надо, чтобы вторая форма, загружающаяся вместе с родительской максимизировалась, а все остальные нет.
maryan.vetrov вне форума Ответить с цитированием
Старый 27.02.2011, 17:23   #6
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

ну сделал WindowState = Maximized у главной и у 1й - дочерней(та что автоматом тоже грузится) формы. обе грузятся в развернутом виде сворачиваю 1ю MDI форму, открываю 2ю и 3ю MDI формы обе не развернуты. чет я не догоню что у вас не получается
http://zalil.ru/30579504 проект чуть поправленный.
wm_leviathan вне форума Ответить с цитированием
Старый 27.02.2011, 17:33   #7
maryan.vetrov
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от wm_leviathan Посмотреть сообщение
ну сделал WindowState = Maximized у главной и у 1й - дочерней(та что автоматом тоже грузится) формы. обе грузятся в развернутом виде сворачиваю 1ю MDI форму, открываю 2ю и 3ю MDI формы обе не развернуты. чет я не догоню что у вас не получается
http://zalil.ru/30579504 проект чуть поправленный.
Правильно, если я первую сварачиваю, та которая автоматом грузится на весь экран, то у меня остальные тоже нормально открываются(не развернутыми), а вы поробуйте первую не сворачивать(так которая автоматом грузиться и на весь экран) и другую через меню открыть. Каков результат?
maryan.vetrov вне форума Ответить с цитированием
Старый 27.02.2011, 17:45   #8
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

Цитата:
Сообщение от maryan.vetrov Посмотреть сообщение
Правильно, если я первую сварачиваю, та которая автоматом грузится на весь экран, то у меня остальные тоже нормально открываются(не развернутыми), а вы поробуйте первую не сворачивать(так которая автоматом грузиться и на весь экран) и другую через меню открыть. Каков результат?
ну в противном случае формы 2 и 3 MDI вы просто не увидите т.к. 1я MDI форма развернута на весь экран. тогда мб сделать чтобы формы 2 и 3 были дочерними по отношению не к главной форме а к форме 1 MDI.
wm_leviathan вне форума Ответить с цитированием
Старый 27.02.2011, 18:05   #9
maryan.vetrov
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от wm_leviathan Посмотреть сообщение
ну в противном случае формы 2 и 3 MDI вы просто не увидите т.к. 1я MDI форма развернута на весь экран. тогда мб сделать чтобы формы 2 и 3 были дочерними по отношению не к главной форме а к форме 1 MDI.
Да, вы абсолютно правы, я совершенно забыл, что в MDI приложениях в один момент времени видно только одну форму, ну вернее, если она не на весь экран, то видно и другую, ну а если на весь, только одну. Да, слушайте, сам заморочился, и других заморочил.

Благодарю.
maryan.vetrov вне форума Ответить с цитированием
Старый 27.02.2011, 18:09   #10
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

ну вот и славно
wm_leviathan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить классы всех дочерних окон формы rangel Работа с сетью в Delphi 8 12.10.2014 17:36
Закрытие всех дочерних форм belarusfight C# (си шарп) 3 26.02.2011 15:06
SetWindowPos для дочерних окон и битмапов. Alex Cones Общие вопросы Delphi 4 02.02.2011 13:49
Много дочерних форм... L.A.M.E.R. Общие вопросы Delphi 4 03.08.2010 08:13
Расположение дочерних MDI окон слева-направо и сверху-вниз Umdis Общие вопросы Delphi 2 30.11.2009 07:05