search
HomeBackend DevelopmentC#.Net TutorialWinForm development, form display and form value transfer

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
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
The .NET Ecosystem: C#'s Role and BeyondThe .NET Ecosystem: C#'s Role and BeyondMay 03, 2025 am 12:04 AM

C# plays a core role in the .NET ecosystem and is the preferred language for developers. 1) C# provides efficient and easy-to-use programming methods, combining the advantages of C, C and Java. 2) Execute through .NET runtime (CLR) to ensure efficient cross-platform operation. 3) C# supports basic to advanced usage, such as LINQ and asynchronous programming. 4) Optimization and best practices include using StringBuilder and asynchronous programming to improve performance and maintainability.

C# as a .NET Language: The Foundation of the EcosystemC# as a .NET Language: The Foundation of the EcosystemMay 02, 2025 am 12:01 AM

C# is a programming language released by Microsoft in 2000, aiming to combine the power of C and the simplicity of Java. 1.C# is a type-safe, object-oriented programming language that supports encapsulation, inheritance and polymorphism. 2. The compilation process of C# converts the code into an intermediate language (IL), and then compiles it into machine code execution in the .NET runtime environment (CLR). 3. The basic usage of C# includes variable declarations, control flows and function definitions, while advanced usages cover asynchronous programming, LINQ and delegates, etc. 4. Common errors include type mismatch and null reference exceptions, which can be debugged through debugger, exception handling and logging. 5. Performance optimization suggestions include the use of LINQ, asynchronous programming, and improving code readability.

C# vs. .NET: Clarifying the Key Differences and SimilaritiesC# vs. .NET: Clarifying the Key Differences and SimilaritiesMay 01, 2025 am 12:12 AM

C# is a programming language, while .NET is a software framework. 1.C# is developed by Microsoft and is suitable for multi-platform development. 2..NET provides class libraries and runtime environments, and supports multilingual. The two work together to build modern applications.

Beyond the Hype: Assessing the Current Role of C# .NETBeyond the Hype: Assessing the Current Role of C# .NETApr 30, 2025 am 12:06 AM

C#.NET is a powerful development platform that combines the advantages of the C# language and .NET framework. 1) It is widely used in enterprise applications, web development, game development and mobile application development. 2) C# code is compiled into an intermediate language and is executed by the .NET runtime environment, supporting garbage collection, type safety and LINQ queries. 3) Examples of usage include basic console output and advanced LINQ queries. 4) Common errors such as empty references and type conversion errors can be solved through debuggers and logging. 5) Performance optimization suggestions include asynchronous programming and optimization of LINQ queries. 6) Despite the competition, C#.NET maintains its important position through continuous innovation.

The Future of C# .NET: Trends and OpportunitiesThe Future of C# .NET: Trends and OpportunitiesApr 29, 2025 am 12:02 AM

The future trends of C#.NET are mainly focused on three aspects: cloud computing, microservices, AI and machine learning integration, and cross-platform development. 1) Cloud computing and microservices: C#.NET optimizes cloud environment performance through the Azure platform and supports the construction of an efficient microservice architecture. 2) Integration of AI and machine learning: With the help of the ML.NET library, C# developers can embed machine learning models in their applications to promote the development of intelligent applications. 3) Cross-platform development: Through .NETCore and .NET5, C# applications can run on Windows, Linux and macOS, expanding the deployment scope.

C# .NET Development Today: Trends and Best PracticesC# .NET Development Today: Trends and Best PracticesApr 28, 2025 am 12:25 AM

The latest developments and best practices in C#.NET development include: 1. Asynchronous programming improves application responsiveness, and simplifies non-blocking code using async and await keywords; 2. LINQ provides powerful query functions, efficiently manipulating data through delayed execution and expression trees; 3. Performance optimization suggestions include using asynchronous programming, optimizing LINQ queries, rationally managing memory, improving code readability and maintenance, and writing unit tests.

C# .NET: Building Applications with the .NET EcosystemC# .NET: Building Applications with the .NET EcosystemApr 27, 2025 am 12:12 AM

How to build applications using .NET? Building applications using .NET can be achieved through the following steps: 1) Understand the basics of .NET, including C# language and cross-platform development support; 2) Learn core concepts such as components and working principles of the .NET ecosystem; 3) Master basic and advanced usage, from simple console applications to complex WebAPIs and database operations; 4) Be familiar with common errors and debugging techniques, such as configuration and database connection issues; 5) Application performance optimization and best practices, such as asynchronous programming and caching.

C# as a Versatile .NET Language: Applications and ExamplesC# as a Versatile .NET Language: Applications and ExamplesApr 26, 2025 am 12:26 AM

C# is widely used in enterprise-level applications, game development, mobile applications and web development. 1) In enterprise-level applications, C# is often used for ASP.NETCore to develop WebAPI. 2) In game development, C# is combined with the Unity engine to realize role control and other functions. 3) C# supports polymorphism and asynchronous programming to improve code flexibility and application performance.

See all articles

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 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),