Winforms - Деактивирайте, когато потребителят плъзга формуляр по границата, за да го премести, той преоразмерява формуляра

Имам проект Winforms с формуляр в него, който е увеличен (this.WindowState = System.Windows.Forms.FormWindowState.Maximized). Когато потребителят плъзне формуляра за границата му, за да го премести, той се преоразмерява до размера, който съм задал (което не е максималният размер на екрана, тъй като не знам точно на кои стойности да задам свойството MinimumSize, за да бъде максимално на всеки екран).

Не искам това поведение. Просто искам формата да остане максимално увеличена. Зададох FormBorderStyle на FixedDialog, така че потребителят да не може да промени размера на формуляра чрез плъзгане на границите. Опитах се да задам отново максималното състояние на прозореца във всички видове събития, но изглежда не работят.

Някой знае ли как да поправя това?


person Marthe Veldhuis    schedule 26.10.2016    source източник
comment
Не е ясно каква е целта ви. Можете ли да разясните повече? Искате ли да попречите на потребителя да премества формуляра? Искате ли да предотвратите преоразмеряването? Искате ли да зададете минимален размер на размера на работния плот?   -  person Reza Aghaei    schedule 26.10.2016
comment
Целта, която се опитвам да постигна, е да спра формата да не се максимизира. Как се постига това - чрез спиране на потребителя да премества формата, чрез задаване на минимален размер - не ме интересува.   -  person Marthe Veldhuis    schedule 26.10.2016
comment
comment
Увеличеният формуляр не може да се преоразмерява или плъзга с мишката, така че не е ясно как това е станало проблем за вас. Публикувайте кода, който дублира проблема за нас.   -  person LarsTech    schedule 26.10.2016
comment
@LarsTech Това е странната част, защото точно това се случи. Все още не знам какво го е причинило, защото промених изпълнението си, но се радвам, че приключих с него ;p.   -  person Marthe Veldhuis    schedule 05.01.2017


Отговори (2)


Това може да ви свърши работа

this.MinimumSize = this.MaximumSize;
this.SizeGripStyle = SizeGripStyle.Hide;

и можете също да опитате да напишете onResize събитие на формата

this.WindowState = System.Windows.Forms.FormWindowState.Maximized

Променете FormBorderStyle на една от фиксираните стойности: FixedSingle, Fixed3D, FixedDialog или FixedToolBar

// Define the border style of the form to a dialog box.
this.FormBorderStyle = FormBorderStyle.FixedDialog;

// Set the MaximizeBox to false to remove the maximize box.
this.MaximizeBox = false;

// Set the MinimizeBox to false to remove the minimize box.
this.MinimizeBox = false;
person Mohit Shrivastava    schedule 26.10.2016
comment
FormBorderStyle вече е зададен на FixedDialog и добавих реда „this.MinimumSize = this.MaximumSize“. За съжаление това не помага. - person Marthe Veldhuis; 26.10.2016
comment
Това не ми помага, тъй като това е въпрос за преместването на формуляра, причиняващо преоразмеряването му, а не за това, че потребителят може да го преоразмери чрез плъзгане на страните на формуляра. - person Marthe Veldhuis; 26.10.2016
comment
FormBorderStyle не съдържа дефиниция за FixedToolBar. - person Ignatius; 14.07.2017

Опитахте ли

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

в комбинация с

this.WindowState = System.Windows.Forms.FormWindowState.Maximized

Когато зададете това, не можете да плъзгате или преоразмерявате формуляра.

Въпреки това ще трябва да направите свой собствен бутон за затваряне или да използвате "Alt+F4", за да затворите прозореца.

person Gwen Royakkers    schedule 26.10.2016