Home Backend Development C#.Net Tutorial WinForm development, form display and form value transfer

WinForm development, form display and form value transfer

Dec 20, 2016 pm 03:10 PM

I didn’t know much about WinForm form display and value transfer between forms before.
I have recently done some WinForm development, and the relevant knowledge used is organized as follows

A. Form display in WinForm
The display form can have the following 2 Methods:
Form.ShowDialog method (the form is displayed as a modal form)
Form.Show method (the form is displayed as a modeless form)

The specific differences between the 2 are as follows:
1. After calling the Form.Show method , the code behind the Show method will be executed immediately
2. After calling the Form.ShowDialog method, the code behind this method will not be executed until the dialog box is closed
3. When the form is displayed as a modal form, click "Close" " button will hide the form and set the DialogResult property to DialogResult.Cancel
Unlike modeless forms, when the user clicks the close form button of the dialog box or sets the value of the DialogResult property, the Close method of the form is not called.
In fact, the form is hidden by assigning the Visible property of the form to false
In this way, the hidden form can be redisplayed without creating a new instance of the dialog box
Because the form is not closed, it is not in the application When you need the form again, please call the Dispose method of the form

How to determine whether a form is a modal form?
Use the Form.Modal property. If the form is displayed in modal mode, it is true, otherwise it is false.
According to the Modal property of the form displayed through Show and ShowDialog, it corresponds to false and true respectively.
Special note:
Because in the window It is impossible to know the display mode before the body is created, so in the form constructor, the Modal attribute always corresponds to false, so we can only use the Modal attribute value in the Load event or afterwards

How to determine the owner of the form Relationship?
Owner property of the Form class: the owner of the form
When a form is owned by another form, it will be minimized and closed along with the owner form.
For example, if Form2 is owned by form Form1, when Form1 is closed or minimized, Form2 will also be closed or minimized.

For example, in form Form1
Form2 f2 = new Form2 ( );
f2.ShowDialog ( this );
//or
f2.Show ( this );
//or
f2.Owner = this;
f2 .ShowDialog( );

In this way, the owner of f2 is Form1

B.WinForm form passing value
Understanding the knowledge related to the display of the form, and then summarizing the value passing method of the form:

1. Through the constructor
Features: Value transfer is one-way (cannot transfer values ​​to each other), simple to implement
The implementation code is as follows:
In the form Form2
int value1;
string value2;

public Form2 (int value1, string value2)
{
InitializeComponent ( );

this.value1 = value1;
this.value2 = value2;
}

Call this in form Form1
new Form2 ( 111 , "222" ).Show ( ); //This way The two values ​​​​111, "222", are transferred to Form2

2. Through static variables
Features: Value transfer is bidirectional, simple to implement
The implementation code is as follows:
Define a static member value in an app class
public class app
{
public static string value;
}

Call like this in form Form1
app.value = "f2"; //Assign values ​​to static members
new Form2 ( ).Show ( ); // Display Form2

in form Form2
this.Text = app.value; //Get the value of app.value
app.value = "Form2"; //Assign a value to app.value so that it can be called by other forms

的3. Features of the public attribute value of the window: Implementation of simple implementation code as follows:


Define a public attribute Form2Value in the window Form2, obtain and set textbox1 text value
Public String form2value

{

get
{{{
get
{
                                                             Return this. .Form2Value = "Ok"; //Assign the value Ok to textBox1 of Form2
f2.ShowDialog ( );

4. Through the public property value and Owner property of the form (recommended)
Features: Simple and flexible implementation
The implementation code is as follows:
In form Form1
public int Form1Value = 1;

Form2 f2 = new Form2 ( );
f2.ShowDialog ( this ); // Pass Form1 as the owner of Form2 to Form2

In form Form2

//The owner of Form2 is Form1

Form1 f1 = (Form1) this.Owner;
//The value obtained from Form1 is 1
MessageBox.Show ( f1.Form1Value .ToString ( ) );
//The Form1Value given to Form1 Assign value 222
f1.Form1Value = 222;

5. Through the public property value of the form and the Application.OpenForms property
Description: Application.OpenForms property: Get the collection of open forms belonging to the application. (This property is in .NET Framework version 2.0)

The implementation code is as follows:

In form Form1
public int Form1Value = 1;

Form2 f2 = new Form2 ( );
f2.Show ( );

In form Form2
string formName = "Form1";
Form fr = Application.OpenForms [ formName ];

if ( fr != null )
{
Form1 f1 = ( Form1 ) fr;
//The value obtained from Form1 is 1
MessageBox.Show ( f1.Form1Value.ToString ( ) );
//Assign the Form1Value of Form1 to a value of 222
f1.Form1Value = 222;
}

6. The code implemented through events
is as follows:
Define the public property Form2Value in the form Form2, get and set the text value of textBox1
and also define an accept event
public string Form2Value
{
  get
 {
                                                                                                           Return this.textBox1.                                                           — (
{
if ( accept != null )
{
Accept ( this , EventArgs.Empty ); //When the form triggers an event, pass its own reference
}
}

In the form Form1
Form2 f2 = new Form2 ( );
f2 .accept += new EventHandler ( f2_accept );
f2.Show ( );

void f2_accept ( object sender , EventArgs e )
{
//The receiver of the event gets a reference to Form2 through a simple type conversion

Form2 f2 = (Form2) sender;

//Received textBox1.Text from Form2
this.textBox1.Text = f2.Form2Value;
}


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to use various symbols in C language How to use various symbols in C language Apr 03, 2025 pm 04:48 PM

The usage methods of symbols in C language cover arithmetic, assignment, conditions, logic, bit operators, etc. Arithmetic operators are used for basic mathematical operations, assignment operators are used for assignment and addition, subtraction, multiplication and division assignment, condition operators are used for different operations according to conditions, logical operators are used for logical operations, bit operators are used for bit-level operations, and special constants are used to represent null pointers, end-of-file markers, and non-numeric values.

What is the role of char in C strings What is the role of char in C strings Apr 03, 2025 pm 03:15 PM

In C, the char type is used in strings: 1. Store a single character; 2. Use an array to represent a string and end with a null terminator; 3. Operate through a string operation function; 4. Read or output a string from the keyboard.

How to handle special characters in C language How to handle special characters in C language Apr 03, 2025 pm 03:18 PM

In C language, special characters are processed through escape sequences, such as: \n represents line breaks. \t means tab character. Use escape sequences or character constants to represent special characters, such as char c = '\n'. Note that the backslash needs to be escaped twice. Different platforms and compilers may have different escape sequences, please consult the documentation.

The difference between multithreading and asynchronous c# The difference between multithreading and asynchronous c# Apr 03, 2025 pm 02:57 PM

The difference between multithreading and asynchronous is that multithreading executes multiple threads at the same time, while asynchronously performs operations without blocking the current thread. Multithreading is used for compute-intensive tasks, while asynchronously is used for user interaction. The advantage of multi-threading is to improve computing performance, while the advantage of asynchronous is to not block UI threads. Choosing multithreading or asynchronous depends on the nature of the task: Computation-intensive tasks use multithreading, tasks that interact with external resources and need to keep UI responsiveness use asynchronous.

The difference between char and wchar_t in C language The difference between char and wchar_t in C language Apr 03, 2025 pm 03:09 PM

In C language, the main difference between char and wchar_t is character encoding: char uses ASCII or extends ASCII, wchar_t uses Unicode; char takes up 1-2 bytes, wchar_t takes up 2-4 bytes; char is suitable for English text, wchar_t is suitable for multilingual text; char is widely supported, wchar_t depends on whether the compiler and operating system support Unicode; char is limited in character range, wchar_t has a larger character range, and special functions are used for arithmetic operations.

How to convert char in C language How to convert char in C language Apr 03, 2025 pm 03:21 PM

In C language, char type conversion can be directly converted to another type by: casting: using casting characters. Automatic type conversion: When one type of data can accommodate another type of value, the compiler automatically converts it.

What is the difference between char and unsigned char What is the difference between char and unsigned char Apr 03, 2025 pm 03:36 PM

char and unsigned char are two data types that store character data. The main difference is the way to deal with negative and positive numbers: value range: char signed (-128 to 127), and unsigned char unsigned (0 to 255). Negative number processing: char can store negative numbers, unsigned char cannot. Bit mode: char The highest bit represents the symbol, unsigned char Unsigned bit. Arithmetic operations: char and unsigned char are signed and unsigned types, and their arithmetic operations are different. Compatibility: char and unsigned char

Common errors and ways to avoid char in C language Common errors and ways to avoid char in C language Apr 03, 2025 pm 03:06 PM

Errors and avoidance methods for using char in C language: Uninitialized char variables: Initialize using constants or string literals. Out of character range: Compare whether the variable value is within the valid range (-128 to 127). Character comparison is case-insensitive: Use toupper() or tolower() to convert character case. '\0' is not added when referencing a character array with char*: use strlen() or manually add '\0' to mark the end of the array. Ignore the array size when using char arrays: explicitly specify the array size or use sizeof() to determine the length. No null pointer is not checked when using char pointer: Check whether the pointer is NULL before use. Use char pointer to point to non-character data

See all articles