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)

Hot Topics

Java Tutorial
1657
14
PHP Tutorial
1257
29
C# Tutorial
1229
24
C# .NET Interview Questions & Answers: Level Up Your Expertise C# .NET Interview Questions & Answers: Level Up Your Expertise Apr 07, 2025 am 12:01 AM

C#.NET interview questions and answers include basic knowledge, core concepts, and advanced usage. 1) Basic knowledge: C# is an object-oriented language developed by Microsoft and is mainly used in the .NET framework. 2) Core concepts: Delegation and events allow dynamic binding methods, and LINQ provides powerful query functions. 3) Advanced usage: Asynchronous programming improves responsiveness, and expression trees are used for dynamic code construction.

Testing C# .NET Applications: Unit, Integration, and End-to-End Testing Testing C# .NET Applications: Unit, Integration, and End-to-End Testing Apr 09, 2025 am 12:04 AM

Testing strategies for C#.NET applications include unit testing, integration testing, and end-to-end testing. 1. Unit testing ensures that the minimum unit of the code works independently, using the MSTest, NUnit or xUnit framework. 2. Integrated tests verify the functions of multiple units combined, commonly used simulated data and external services. 3. End-to-end testing simulates the user's complete operation process, and Selenium is usually used for automated testing.

C# .NET: Exploring Core Concepts and Programming Fundamentals C# .NET: Exploring Core Concepts and Programming Fundamentals Apr 10, 2025 am 09:32 AM

C# is a modern, object-oriented programming language developed by Microsoft and as part of the .NET framework. 1.C# supports object-oriented programming (OOP), including encapsulation, inheritance and polymorphism. 2. Asynchronous programming in C# is implemented through async and await keywords to improve application responsiveness. 3. Use LINQ to process data collections concisely. 4. Common errors include null reference exceptions and index out-of-range exceptions. Debugging skills include using a debugger and exception handling. 5. Performance optimization includes using StringBuilder and avoiding unnecessary packing and unboxing.

From Web to Desktop: The Versatility of C# .NET From Web to Desktop: The Versatility of C# .NET Apr 15, 2025 am 12:07 AM

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

The Continued Relevance of C# .NET: A Look at Current Usage The Continued Relevance of C# .NET: A Look at Current Usage Apr 16, 2025 am 12:07 AM

C#.NET is still important because it provides powerful tools and libraries that support multiple application development. 1) C# combines .NET framework to make development efficient and convenient. 2) C#'s type safety and garbage collection mechanism enhance its advantages. 3) .NET provides a cross-platform running environment and rich APIs, improving development flexibility.

Advanced C# .NET Tutorial: Ace Your Next Senior Developer Interview Advanced C# .NET Tutorial: Ace Your Next Senior Developer Interview Apr 08, 2025 am 12:06 AM

Interview with C# senior developer requires mastering core knowledge such as asynchronous programming, LINQ, and internal working principles of .NET frameworks. 1. Asynchronous programming simplifies operations through async and await to improve application responsiveness. 2.LINQ operates data in SQL style and pay attention to performance. 3. The CLR of the NET framework manages memory, and garbage collection needs to be used with caution.

Is C# .NET Right for You? Evaluating its Applicability Is C# .NET Right for You? Evaluating its Applicability Apr 13, 2025 am 12:03 AM

C#.NETissuitableforenterprise-levelapplicationswithintheMicrosoftecosystemduetoitsstrongtyping,richlibraries,androbustperformance.However,itmaynotbeidealforcross-platformdevelopmentorwhenrawspeediscritical,wherelanguageslikeRustorGomightbepreferable.

C# .NET Security Best Practices: Preventing Common Vulnerabilities C# .NET Security Best Practices: Preventing Common Vulnerabilities Apr 05, 2025 am 12:01 AM

Security best practices for C# and .NET include input verification, output encoding, exception handling, as well as authentication and authorization. 1) Use regular expressions or built-in methods to verify input to prevent malicious data from entering the system. 2) Output encoding to prevent XSS attacks, use the HttpUtility.HtmlEncode method. 3) Exception handling avoids information leakage, records errors but does not return detailed information to the user. 4) Use ASP.NETIdentity and Claims-based authorization to protect applications from unauthorized access.

See all articles