Как изменить размер окна в windows form

I have a WinForms app that I am trying to make full screen (somewhat like what VS does in full screen mode). Currently I am setting FormBorderStyle to None and WindowState to Maximized which gives...

I have a WinForms app that I am trying to make full screen (somewhat like what VS does in full screen mode).

Currently I am setting FormBorderStyle to None and WindowState to Maximized which gives me a little more space, but it doesn’t cover over the taskbar if it is visible.

What do I need to do to use that space as well?

For bonus points, is there something I can do to make my MenuStrip autohide to give up that space as well?

Divins Mathew's user avatar

asked Feb 2, 2009 at 22:10

To the base question, the following will do the trick (hiding the taskbar)

private void Form1_Load(object sender, EventArgs e)
{
    this.TopMost = true;
    this.FormBorderStyle = FormBorderStyle.None;
    this.WindowState = FormWindowState.Maximized;
}

But, interestingly, if you swap those last two lines the Taskbar remains visible. I think the sequence of these actions will be hard to control with the properties window.

answered Feb 3, 2009 at 15:30

H H's user avatar

H HH H

258k30 gold badges324 silver badges508 bronze badges

5

A tested and simple solution

I’ve been looking for an answer for this question in SO and some other sites, but one gave an answer was very complex to me and some others answers simply doesn’t work correctly, so after a lot code testing I solved this puzzle.

Note: I’m using Windows 8 and my taskbar isn’t on auto-hide mode.

I discovered that setting the WindowState to Normal before performing any modifications will stop the error with the not covered taskbar.

The code

I created this class that have two methods, the first enters in the «full screen mode» and the second leaves the «full screen mode». So you just need to create an object of this class and pass the Form you want to set full screen as an argument to the EnterFullScreenMode method or to the LeaveFullScreenMode method:

class FullScreen
{
    public void EnterFullScreenMode(Form targetForm)
    {
        targetForm.WindowState = FormWindowState.Normal;
        targetForm.FormBorderStyle = FormBorderStyle.None;
        targetForm.WindowState = FormWindowState.Maximized;
    }

    public void LeaveFullScreenMode(Form targetForm)
    {
        targetForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
        targetForm.WindowState = FormWindowState.Normal;
    }
}

Usage example

    private void fullScreenToolStripMenuItem_Click(object sender, EventArgs e)
    {
        FullScreen fullScreen = new FullScreen();

        if (fullScreenMode == FullScreenMode.No)  // FullScreenMode is an enum
        {
            fullScreen.EnterFullScreenMode(this);
            fullScreenMode = FullScreenMode.Yes;
        }
        else
        {
            fullScreen.LeaveFullScreenMode(this);
            fullScreenMode = FullScreenMode.No;
        }
    }

I have placed this same answer on another question that I’m not sure if is a duplicate or not of this one. (Link to the other question: How to display a Windows Form in full screen on top of the taskbar?)

Community's user avatar

answered May 26, 2013 at 22:59

Zignd's user avatar

ZigndZignd

6,75611 gold badges39 silver badges61 bronze badges

3

And for the menustrip-question, try set

MenuStrip1.Parent = Nothing

when in fullscreen mode, it should then disapear.

And when exiting fullscreenmode, reset the menustrip1.parent to the form again and the menustrip will be normal again.

Vishal Suthar's user avatar

answered Feb 2, 2009 at 23:28

Stefan's user avatar

StefanStefan

11.4k7 gold badges50 silver badges75 bronze badges

You can use the following code to fit your system screen and task bar is visible.

    private void Form1_Load(object sender, EventArgs e)
    {   
        // hide max,min and close button at top right of Window
        this.FormBorderStyle = FormBorderStyle.None;
        // fill the screen
        this.Bounds = Screen.PrimaryScreen.Bounds;
    }

No need to use:

    this.TopMost = true;

That line interferes with alt+tab to switch to other application. («TopMost» means the window stays on top of other windows, unless they are also marked «TopMost».)

ToolmakerSteve's user avatar

answered Feb 12, 2013 at 12:43

Raghavendra Devraj's user avatar

I worked on Zingd idea and made it simpler to use.

I also added the standard F11 key to toggle fullscreen mode.

Setup

Everything is now in the FullScreen class, so you don’t have to declare a bunch of variables in your Form. You just instanciate a FullScreen object in your form’s constructor :

FullScreen fullScreen;

public Form1()
{
    InitializeComponent();
    fullScreen = new FullScreen(this);
}

Please note this assumes the form is not maximized when you create the FullScreen object.

Usage

You just use one of the classe’s functions to toggle the fullscreen mode :

fullScreen.Toggle();

or if you need to handle it explicitly :

fullScreen.Enter();
fullScreen.Leave();

Code

using System.Windows.Forms;


class FullScreen
{ 
    Form TargetForm;

    FormWindowState PreviousWindowState;

    public FullScreen(Form targetForm)
    {
        TargetForm = targetForm;
        TargetForm.KeyPreview = true;
        TargetForm.KeyDown += TargetForm_KeyDown;
    }

    private void TargetForm_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyData == Keys.F11)
        {
            Toggle();
        }
    }

    public void Toggle()
    {
        if (TargetForm.WindowState == FormWindowState.Maximized)
        {
            Leave();
        }
        else
        {
            Enter();
        }
    }
        
    public void Enter()
    {
        if (TargetForm.WindowState != FormWindowState.Maximized)
        {
            PreviousWindowState = TargetForm.WindowState;
            TargetForm.WindowState = FormWindowState.Normal;
            TargetForm.FormBorderStyle = FormBorderStyle.None;
            TargetForm.WindowState = FormWindowState.Maximized;
        }
    }
      
    public void Leave()
    {
        TargetForm.FormBorderStyle = FormBorderStyle.Sizable;
        TargetForm.WindowState = PreviousWindowState;
    }
}

answered Jun 24, 2020 at 9:12

geriwald's user avatar

geriwaldgeriwald

1921 gold badge3 silver badges17 bronze badges

I recently made a Mediaplayer application and I used API calls to make sure the taskbar was hidden when the program was running fullscreen and then restored the taskbar when the program was not in fullscreen or not had the focus or was exited.

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Integer, ByVal nCmdShow As Integer) As Integer

Sub HideTrayBar()
    Try


        Dim tWnd As Integer = 0
        Dim bWnd As Integer = 0
        tWnd = FindWindow("Shell_TrayWnd", vbNullString)
        bWnd = FindWindowEx(tWnd, bWnd, "BUTTON", vbNullString)
        ShowWindow(tWnd, 0)
        ShowWindow(bWnd, 0)
    Catch ex As Exception
        'Error hiding the taskbar, do what you want here..'
    End Try
End Sub
Sub ShowTraybar()
    Try
        Dim tWnd As Integer = 0
        Dim bWnd As Integer = 0
        tWnd = FindWindow("Shell_TrayWnd", vbNullString)
        bWnd = FindWindowEx(tWnd, bWnd, "BUTTON", vbNullString)
        ShowWindow(bWnd, 1)
        ShowWindow(tWnd, 1)
    Catch ex As Exception
        'Error showing the taskbar, do what you want here..'
    End Try


End Sub

Tridib Roy Arjo's user avatar

answered Feb 2, 2009 at 23:19

Stefan's user avatar

StefanStefan

11.4k7 gold badges50 silver badges75 bronze badges

3

You need to set your window to be topmost.

answered Feb 2, 2009 at 22:12

Tron's user avatar

TronTron

1,38710 silver badges11 bronze badges

2

I don’t know if it will work on .NET 2.0, but it worked me on .NET 4.5.2. Here is the code:

using System;
using System.Drawing;
using System.Windows.Forms;

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

    // CODE STARTS HERE

    private System.Drawing.Size oldsize = new System.Drawing.Size(300, 300);
    private System.Drawing.Point oldlocation = new System.Drawing.Point(0, 0);
    private System.Windows.Forms.FormWindowState oldstate = System.Windows.Forms.FormWindowState.Normal;
    private System.Windows.Forms.FormBorderStyle oldstyle = System.Windows.Forms.FormBorderStyle.Sizable;
    private bool fullscreen = false;
    /// <summary>
    /// Goes to fullscreen or the old state.
    /// </summary>
    private void UpgradeFullscreen()
    {
        if (!fullscreen)
        {
            oldsize = this.Size;
            oldstate = this.WindowState;
            oldstyle = this.FormBorderStyle;
            oldlocation = this.Location;
            this.WindowState = System.Windows.Forms.FormWindowState.Normal;
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.Bounds = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
            fullscreen = true;
        }
        else
        {
            this.Location = oldlocation;
            this.WindowState = oldstate;
            this.FormBorderStyle = oldstyle;
            this.Size = oldsize;
            fullscreen = false;
        }
    }

    // CODE ENDS HERE
}

Usage:

UpgradeFullscreen(); // Goes to fullscreen
UpgradeFullscreen(); // Goes back to normal state
// You don't need arguments.

Notice:
You MUST place it inside your Form’s class (Example: partial class Form1 : Form { /* Code goes here */ } ) or it will not work because if you don’t place it on any form, code this will create an exception.

answered Oct 28, 2016 at 14:12

On the Form Move Event add this:

private void Frm_Move (object sender, EventArgs e)
{
    Top = 0; Left = 0;
    Size = new System.Drawing.Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
}

answered May 16, 2019 at 19:28

Segan's user avatar

SeganSegan

4765 silver badges5 bronze badges

If you want to keep the border of the form and have it cover the task bar, use the following:

Set FormBoarderStyle to either FixedSingle or Fixed3D

Set MaximizeBox to False

Set WindowState to Maximized

answered Jun 9, 2021 at 13:48

Quinton's user avatar

Основные свойства форм

Последнее обновление: 31.10.2015

С помощью специального окна Properties (Свойства) справа Visual Studio предоставляет нам удобный интерфейс для управления свойствами элемента:

свойства форм в Windows Forms

Большинство этих свойств оказывает влияние на визуальное отображение формы. Пробежимся по основным свойствам:

  • Name: устанавливает имя формы — точнее имя класса, который наследуется от класса Form

  • BackColor: указывает на фоновый цвет формы. Щелкнув на это свойство, мы сможем выбрать тот цвет, который нам подходит
    из списка предложенных цветов или цветовой палитры

  • BackgroundImage: указывает на фоновое изображение формы

  • BackgroundImageLayout: определяет, как изображение, заданное в свойстве BackgroundImage, будет располагаться на форме.

  • ControlBox: указывает, отображается ли меню формы. В данном случае под меню понимается меню самого верхнего уровня, где
    находятся иконка приложения, заголовок формы, а также кнопки минимизации формы и крестик. Если данное свойство имеет значение false, то мы не увидим
    ни иконку, ни крестика, с помощью которого обычно закрывается форма

  • Cursor: определяет тип курсора, который используется на форме

  • Enabled: если данное свойство имеет значение false, то она не сможет получать ввод от пользователя, то есть мы не сможем
    нажать на кнопки, ввести текст в текстовые поля и т.д.

  • Font: задает шрифт для всей формы и всех помещенных на нее элементов управления. Однако, задав у элементов формы свой шрифт,
    мы можем тем самым переопределить его

  • ForeColor: цвет шрифта на форме

  • FormBorderStyle: указывает, как будет отображаться граница формы и строка заголовка. Устанавливая данное свойство в None
    можно создавать внешний вид приложения произвольной формы

  • HelpButton: указывает, отображается ли кнопка справки формы

  • Icon: задает иконку формы

  • Location: определяет положение по отношению к верхнему левому углу экрана, если для свойства StartPosition
    установлено значение Manual

  • MaximizeBox: указывает, будет ли доступна кнопка максимизации окна в заголовке формы

  • MinimizeBox: указывает, будет ли доступна кнопка минимизации окна

  • MaximumSize: задает максимальный размер формы

  • MinimumSize: задает минимальный размер формы

  • Opacity: задает прозрачность формы

  • Size: определяет начальный размер формы

  • StartPosition: указывает на начальную позицию, с которой форма появляется на экране

  • Text: определяет заголовок формы

  • TopMost: если данное свойство имеет значение true, то форма всегда будет находиться поверх других окон

  • Visible: видима ли форма, если мы хотим скрыть форму от пользователя, то можем задать данному свойству значение
    false

  • WindowState: указывает, в каком состоянии форма будет находиться при запуске: в нормальном, максимизированном или минимизированном

Программная настройка свойств

С помощью значений свойств в окне Свойства мы можем изменить по своему усмотрению внешний вид формы, но все то же самое мы можем сделать
динамически в коде. Перейдем к коду, для этого нажмем правой кнопкой мыши на форме и выберем в появившемся контекстном меню View Code (Просмотр кода). Перед нами открывается файл кода
Form1.cs. Изменим его следующим образом:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace HelloApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Text = "Hello World!";
            this.BackColor = Color.Aquamarine;
            this.Width = 250;
            this.Height = 250;
        }
    }
}

изменение свойств формы

В данном случае мы настроили несколько свойств отображения формы: заголовок, фоновый цвет, ширину и высоту.
При использовании конструктора формы надо учитывать, что весь остальной код должен идти после вызова метода InitializeComponent(), поэтому все установки свойств
здесь расположены после этого метода.

Установка размеров формы

Для установки размеров формы можно использовать такие свойства как Width/Height или Size. Width/Height принимают числовые значения, как в вышеприведенном
примере. При установке размеров через свойство Size, нам надо присвоить свойству объект типа Size:

this.Size = new Size(200,150);

Объект Size в свою очередь принимает в конструкторе числовые значения для установки ширины и высоты.

Начальное расположение формы

Начальное расположение формы устанавливается с помощью свойства StartPosition, которое может принимать одно из следующих значений:

  • Manual: Положение формы определяется свойством Location

  • CenterScreen: Положение формы в центре экрана

  • WindowsDefaultLocation: Позиция формы на экране задается системой Windows, а размер определяется свойством Size

  • WindowsDefaultBounds: Начальная позиция и размер формы на экране задается системой Windows

  • CenterParent: Положение формы устанавливается в центре родительского окна

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

this.StartPosition = FormStartPosition.CenterScreen;

Фон и цвета формы

Чтобы установить цвет как фона формы, так и шрифта, нам надо использовать цветовое значение, хранящееся в структуре Color:

this.BackColor = Color.Aquamarine;
this.ForeColor = Color.Red;

Кроме того, мы можем в качестве фона задать изображение в свойстве BackgroundImage, выбрав его в окне свойств или в коде, указав путь к изображению:

this.BackgroundImage = Image.FromFile("C:\Users\Eugene\Pictures\3332.jpg");

Чтобы должным образом настроить нужное нам отображение фоновой картинки, надо использовать свойство BackgroundImageLayout,
которое может принимать одно из следующих значений:

  • None: Изображение помещается в верхнем левом углу формы и сохраняет свои первоначальные значения

  • Tile: Изображение располагается на форме в виде мозаики

  • Center: Изображение располагается по центру формы

  • Stretch: Изображение растягивается до размеров формы без сохранения пропорций

  • Zoom: Изображение растягивается до размеров формы с сохранением пропорций

Например, расположим форму по центру экрана:

 this.StartPosition = FormStartPosition.CenterScreen;

3 / 3 / 1

Регистрация: 25.05.2011

Сообщений: 106

1

27.11.2012, 18:56. Показов 3542. Ответов 4


Всем здрасте! Можете подсказать как изменить размер окна, например по нажатии кнопки.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



iljuase

1 / 1 / 0

Регистрация: 27.11.2012

Сообщений: 19

27.11.2012, 19:21

2

C#
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
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Threading;
using System.Drawing;
using System.Linq;
using System.Threading.Tasks;
using System.Collections;
 
 
      public class ThreadTest : Form
      {
          int x, y;
          Button butAdd;
          Thread thread;
          bool life;
 
 
          public ThreadTest()
          {
              butAdd = new Button();
              butAdd.Location = new Point(30, 30);
              butAdd.Size = new Size(60, 60);
              butAdd.Text = "+1";
              butAdd.Click += new EventHandler(OnButAdd);
              Controls.Add(butAdd);
              life = true;
              Show();
              thread = new Thread(new ThreadStart(ThreadFunc));
              thread.Start();
          }
           public   void OnButAdd(object obj, EventArgs e)
          { 
 
              this.Height = 400;
              this.Width = 400;
          }
 
          protected override void OnClosed(EventArgs args)
          { life = false; }
          private void ThreadFunc()
          {
              while (life)
              {
              }
              MessageBox.Show("Potok end");
          }
      }
      class a
      {
          static void Main()
          {
            
              Application.Run(new ThreadTest());
          }
      }



0



Колямбий

7 / 7 / 3

Регистрация: 18.12.2011

Сообщений: 137

27.11.2012, 19:25

3

в кнопке можно прописать следующий код

C#
1
2
this.Width = 111;
this.Height = 222;

Добавлено через 1 минуту
выше вам дали более полный ответ



1



3 / 3 / 1

Регистрация: 25.05.2011

Сообщений: 106

27.11.2012, 19:32

 [ТС]

4

А можно сделать это более плавно?



0



iljuase

1 / 1 / 0

Регистрация: 27.11.2012

Сообщений: 19

27.11.2012, 19:38

5

Цитата
Сообщение от Nik0z
Посмотреть сообщение

А можно сделать это более плавно?

C#
1
2
this.Height += 10;
this.Width += 10;

Так?



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

27.11.2012, 19:38

Помогаю со студенческими работами здесь

Изменение размеров элементов, сохраняя пропорции, при изменении размеров самой формы
Как изменять размеры элементов, сохраняя пропорции, при изменении размеров самой формы?

Изменение размеров элементов управления с изменением размеров формы
подскажите, как сделать так чтобы размер элементов управления изменялся пропорционально размерам…

Как внутри окна Form 1 открыть окно Form 2
Как внутри окна Form 1 открыть окно Form 2 т.е. как бы обновить form 1?

Создайте приложение, отображающее движение окружности вдоль границы окна. Учтите возможность изменения размеров окна
Создайте приложение, отображающее движение окружности вдоль границы окна. Учтите возможность…

Изменение размеров textBox
Как сделать чтобы текстбокс был не только в ширину, но и в длину? То есть как-бы не стандартный, а…

Изменение размеров MDIClient
Добрый день, коллеги. Несколько дней бьюсь над проблемой изменения размера контейнера дочерних…

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

Или воспользуйтесь поиском по форуму:

5

It is possible to prepare the windows forms window to resize/reposition all elements depending on the window size, but I am trying to do something different.

Is it possible in some way to actually scale the window along with all elements inside regardless of their positions, properties, etc?

Basically the way you would scale a picture in some graphics editor — you can just stretch or shrink it, but it doesn’t matter what is on that picture.

So, is it possible to do something similar with the form? Being able to scale its size regardless of what’s inside the form.

asked Apr 1, 2014 at 8:30

NewProger's user avatar

NewProgerNewProger

2,8859 gold badges38 silver badges56 bronze badges

3

Windows form does not provide any feature to do this. But, you can write your own code and make your form resolution independent.

This is not a complete example to make windows form resolution independent but, you can get logic from here. The following code creates problem when you resize the window quickly.

CODE:

private Size oldSize;
private void Form1_Load(object sender, EventArgs e) => oldSize = base.Size;

protected override void OnResize(System.EventArgs e)
{
    base.OnResize(e);

    foreach (Control cnt in this.Controls) 
        ResizeAll(cnt, base.Size);

    oldSize = base.Size;
}
private void ResizeAll(Control control, Size newSize)
{
    int width      = newSize.Width - oldSize.Width;
    control.Left  += (control.Left  * width) / oldSize.Width;
    control.Width += (control.Width * width) / oldSize.Width;

    int height = newSize.Height - oldSize.Height;
    control.Top    += (control.Top    * height) / oldSize.Height;
    control.Height += (control.Height * height) / oldSize.Height;
}

Otherwise you can use any third party control like DevExpress Tool. There is LayoutControl which is providing same facility. you can show and hide any control at runtime without leaving blank space.

AustinWBryan's user avatar

AustinWBryan

3,2003 gold badges22 silver badges42 bronze badges

answered Apr 1, 2014 at 9:21

Shell's user avatar

ShellShell

6,74610 gold badges38 silver badges70 bronze badges

3

Your form has a Scale property. You can directly set this property and it will simultaneously affect every control on the form.

float scaleX = ((float)formNewWidth / formBaseWidth);
float scaleY = ((float)formNewHeight / formBaseHeight);
this.Scale(new SizeF(scaleX, scaleY));

put this in your resize event.

Justin Crawford's user avatar

answered Aug 24, 2019 at 1:22

John Lord's user avatar

John LordJohn Lord

1,81911 silver badges25 bronze badges

Check out the Control.Scale method available since .NET 2.0.

answered Mar 1, 2018 at 11:12

staafl's user avatar

staaflstaafl

3,1071 gold badge27 silver badges23 bronze badges

It is possible to prepare the windows forms window to resize/reposition all elements depending on the window size, but I am trying to do something different.

Is it possible in some way to actually scale the window along with all elements inside regardless of their positions, properties, etc?

Basically the way you would scale a picture in some graphics editor — you can just stretch or shrink it, but it doesn’t matter what is on that picture.

So, is it possible to do something similar with the form? Being able to scale its size regardless of what’s inside the form.

asked Apr 1, 2014 at 8:30

NewProger's user avatar

NewProgerNewProger

2,8859 gold badges38 silver badges56 bronze badges

3

Windows form does not provide any feature to do this. But, you can write your own code and make your form resolution independent.

This is not a complete example to make windows form resolution independent but, you can get logic from here. The following code creates problem when you resize the window quickly.

CODE:

private Size oldSize;
private void Form1_Load(object sender, EventArgs e) => oldSize = base.Size;

protected override void OnResize(System.EventArgs e)
{
    base.OnResize(e);

    foreach (Control cnt in this.Controls) 
        ResizeAll(cnt, base.Size);

    oldSize = base.Size;
}
private void ResizeAll(Control control, Size newSize)
{
    int width      = newSize.Width - oldSize.Width;
    control.Left  += (control.Left  * width) / oldSize.Width;
    control.Width += (control.Width * width) / oldSize.Width;

    int height = newSize.Height - oldSize.Height;
    control.Top    += (control.Top    * height) / oldSize.Height;
    control.Height += (control.Height * height) / oldSize.Height;
}

Otherwise you can use any third party control like DevExpress Tool. There is LayoutControl which is providing same facility. you can show and hide any control at runtime without leaving blank space.

AustinWBryan's user avatar

AustinWBryan

3,2003 gold badges22 silver badges42 bronze badges

answered Apr 1, 2014 at 9:21

Shell's user avatar

ShellShell

6,74610 gold badges38 silver badges70 bronze badges

3

Your form has a Scale property. You can directly set this property and it will simultaneously affect every control on the form.

float scaleX = ((float)formNewWidth / formBaseWidth);
float scaleY = ((float)formNewHeight / formBaseHeight);
this.Scale(new SizeF(scaleX, scaleY));

put this in your resize event.

Justin Crawford's user avatar

answered Aug 24, 2019 at 1:22

John Lord's user avatar

John LordJohn Lord

1,81911 silver badges25 bronze badges

Check out the Control.Scale method available since .NET 2.0.

answered Mar 1, 2018 at 11:12

staafl's user avatar

staaflstaafl

3,1071 gold badge27 silver badges23 bronze badges

Размер
формы Windows Forms можно указать несколькими
способами. Можно изменить высоту и
ширину формы программными средствами,
задав новое значение свойства Size
или изменив свойства Height
и Width
по отдельности. Если используется Visual
Studio, можно изменить размеры с помощью
конструктора Windows Forms.

Изменить
размер формы программными средствами
можно двумя способами:

  1. Задайте
    для формы свойство Size,
    например:

Имя_переменной_формы.Size
=
new
System.Drawing.Size(ширина,
высота);

Пример:

glob.frm2.Size
= new System.Drawing.Size(300, 300);

  1. Измените
    высоту или ширину с помощью свойств
    Width
    или Height,
    например:

Имя_переменной_формы.Width
= 300;

        1. Добавление фоновых изображений в формы Windows Forms.

При
создании форм Windows Forms иногда нужно
поместить фоновый рисунок на элемент
управления или на саму форму. Для этого
можно использовать настройки, задаваемые
в окне Свойства.

Чтобы
добавить фоновый рисунок в форму Windows
Forms, выполните следующие действия.

  1. Щелкните
    свойство BackgroundImage
    в окне Свойства
    формы. Нажмите кнопку с многоточием
    ()
    для открытия диалогового окна Выбор
    ресурса.

  2. Щелкните
    Импорт
    для открытия диалогового окна Открытие
    файла.
    Перейдите в папку, в которой находится
    файл рисунка (с расширением BMP). Нажмите
    кнопку Открыть,
    чтобы открыть файл.

Обратите
внимание, что выбранный файл теперь
находится в списке Файла
ресурсов проекта,
а рисунок отображается в окне
Предварительный
просмотр.

  1. Нажмите
    кнопку ОК,
    чтобы импортировать рисунок как ресурс.
    Обратите
    внимание, что теперь рисунок будет
    отображаться в форме. Управлять внешним
    видом рисунка в форме можно с помощью
    свойства BackgroundImageLayout.

Обратите
внимание, что в проекте появилась папка
Ресурсы (в
обозревателе решений),
в которую скопирован рисунок.

Примечание.
Если выбрать Локальный ресурс, то папка
Resoures
не будет создана, а в проекте будет
храниться ссылка на файл с рисунком.
При выборе опции Файл ресурсов проекта
создается в папке с проектом новая папка
под названием Resoures,
в которую копируется выбранных графический
файл.

Чтобы
удалить фоновый рисунок из формы Windows
Forms
в окне
Свойства
щелкните правой кнопкой мыши кнопку с
многоточием ()
для свойства BackgroundImage
и выберите Сброс.

        1. Отображение модальных и немодальных форм Windows Forms

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

Диалоговые
окна, в которых отображаются важные
сообщения, должны всегда быть модальными.

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

Чтобы
отобразить форму как модальное диалоговое
окно

вызовите метод ShowDialog.

В
следующем примере кода показан способ
отображения модального диалогового
окна.

glob.frm2.ShowDialog();

В
методе ShowDialog
существует необязательный аргумент
owner,
который можно использовать в форме для
определения отношения «главный-подчиненный».
Например, когда с помощью кода в главной
форме отображается диалоговое окно, в
качестве значения аргумента owner
диалогового окна можно передать значение
this,
чтобы определить, что главная форма
является владельцем. Это показано в
следующем примере.

glob.frm2.ShowDialog(this);

Чтобы
отобразить форму как немодальное
диалоговое окно
вызовите
метод Show.

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

glob.frm2.Show();

Примечание.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Как изменить размер окна в windows 10 по умолчанию
  • Как изменить размер окна в windows 10 горячие клавиши
  • Как изменить размер одного ярлыка на рабочем столе windows 10
  • Как изменить размер одного значка на рабочем столе в windows 10
  • Как изменить размер обоев на рабочем столе windows 10