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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Размеры формы 
:(
    Опции темы
Vit
Дата 10.1.2008, 04:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Задача такая. Пусть есть форма, на которую юзверь нажал на кнопку Maximize. Как узнать какие размеры формы будут у формы, когда её опять переведут в Normal? 



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
farad
Дата 10.1.2008, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



посмотри RestoreBounds
PM MAIL   Вверх
Kefir
Дата 10.1.2008, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



угу, добью ссылкой - http://msdn2.microsoft.com/en-us/library/s...torebounds.aspx В)
PM MAIL WWW Skype   Вверх
Vit
Дата 10.1.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Цитата(Kefir @  10.1.2008,  01:38 Найти цитируемый пост)
угу, добью ссылкой - http://msdn2.microsoft.com/en-us/library/s...torebounds.aspx В) 



Написано что не поддерживается .net 1.0 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Kefir
Дата 10.1.2008, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



ах даже так?.. ну тогда лови максимайз и запоминай вручную.
PM MAIL WWW Skype   Вверх
stab
Дата 10.1.2008, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



тогда видимо либо отслеживать эти размеры с самого рождения формы, что довольно суетно:

Код

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        normalBounds = Bounds; // -1 for Left/Top means not assigned or position is system defined
    }

    private Rectangle normalBounds;

    private void Form1_SizeChanged(object sender, EventArgs e)
    {
        if (WindowState == FormWindowState.Normal)
        {
            normalBounds = Bounds;
        }
    }

    private void Form1_LocationChanged(object sender, EventArgs e)
    {
        if (WindowState == FormWindowState.Normal)
        {
            normalBounds = Bounds;
        }
    }
}


либо Win32 API + GetWindowPlacement + rcNormalPosition, что невыносимо.. т.е. непереносимо.. т.е. некрасиво smile

Код

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public Rectangle NormalBounds
    {
        get
        {
            NativeMethods.WINDOWPLACEMENT placement = new NativeMethods.WINDOWPLACEMENT();
            placement.length = Marshal.SizeOf(typeof(NativeMethods.WINDOWPLACEMENT));
            NativeMethods.GetWindowPlacement(this.Handle, ref placement);
            return Rectangle.FromLTRB(
                placement.rcNormalPosition.left,
                placement.rcNormalPosition.top,
                placement.rcNormalPosition.right,
                placement.rcNormalPosition.bottom
            );
        }
    }
}

static class NativeMethods
{
    [DllImport("user32.dll")]
    public static extern bool GetWindowPlacement(IntPtr hWnd,
        ref WINDOWPLACEMENT lpwndpl);

    public struct POINT
    {
        public int x;
        public int y;
    }

    public struct RECT
    {
        public int left;
        public int top;
        public int right;
        public int bottom;
    }

    public struct WINDOWPLACEMENT
    {
        public int length;
        public int flags;
        public int showCmd;
        public POINT ptMinPosition;
        public POINT ptMaxPosition;
        public RECT rcNormalPosition;
    }
}



--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Kefir
Дата 10.1.2008, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



Код

MyForm.SizeChanged += new EventHandler(this.MyForm_SizeChanged);
private void MyForm_SizeChanged(object sender, System.EventArgs e)
{
  if(this.WindowState != FormWindowState.Maximized) {
    // запоминать тут куда надо В)
  }
}

PM MAIL WWW Skype   Вверх
Vit
Дата 10.1.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



да уж... :( именно таких решений я пытаюсь обычно избегать. некрасиво... но видно ничего другого не остаётся...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
stab
Дата 10.1.2008, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



что делать.. :\


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Kefir
Дата 10.1.2008, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



Vit, из праздного интереса - откуда ограничение на 1.0?
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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