検索
ホームページバックエンド開発C#.Net チュートリアルWinForm 開発、フォーム表示、フォーム値転送

以前は WinForm フォームの表示とフォーム間の値の転送についてあまり知りませんでした。
最近 WinForm 開発を行ったことがありますが、使用した関連知識は次のように整理されています

A. WinForm でのフォーム表示
表示フォームには次のようなものがあります。次の 2 つのメソッド:
Form.ShowDialog メソッド (フォームはモーダル フォームとして表示されます)
Form.Show メソッド (フォームはモードレス フォームとして表示されます)

2 つの具体的な違いは次のとおりです。 Form.Show メソッドを呼び出した後、Show メソッドの背後にあるコードはすぐに実行されます
2. Form.ShowDialog メソッドを呼び出した後、このメソッドの背後にあるコードはダイアログ ボックスが閉じるまで実行されません
3.モーダルフォームとして表示されている場合、「閉じる」ボタンをクリックするとフォームが非表示になり、DialogResult プロパティが DialogResult.Cancel に設定されます
モードレスフォームとは異なり、ユーザーがダイアログボックスのフォームを閉じるボタンをクリックするか、DialogResult の値を設定すると、
実際には、フォームの Visible プロパティを false に割り当てることで、フォームが非表示になります。
このようにして、ダイアログ ボックスの新しいインスタンスを作成せずに、非表示のフォームを再表示できます。
フォームが閉じられていないため、フォームが再度必要になった場合は、フォームの Dispose メソッドを呼び出してください。
フォームがモーダル モードで表示される場合は true、それ以外の場合は false を使用します。

Show および ShowDialog を通じて表示されるフォームの Modal プロパティに従って、それぞれ false と true に対応します。特記事項:

ウィンドウ内ではボディが作成される前に表示モードを知ることができないため、フォームコンストラクターではModal属性は常にfalseに対応するため、Modal属性値はLoadイベント以降でのみ使用できます

フォーム関係の所有者を決定する方法?
Form クラスの Owner プロパティ: フォームの所有者
フォームが別のフォームによって所有されている場合、そのフォームは最小化され、所有者のフォームとともに閉じられます。

たとえば、Form2 がフォーム Form1 によって所有されている場合、Form1 が閉じるか最小化されると、Form2 も閉じるか最小化されます。


たとえば、フォーム Form1
Form2 f2 = new Form2 ( );
f2.ShowDialog ( this );

//or

f2.Show ( this );
//or
f2.Owner = this;
f2 .ShowDialog( );

このように、f2のオーナーはForm1です

B.WinFormフォームの値の転送

フォームの表示に関する知識を理解した上で、フォームの値の転送方法をまとめます:

1. コンストラクターを介して

特徴: 値の転送は一方向であり (値を相互に転送することはできません)、実装は簡単です
実装コードは次のとおりです:

Form2 の形式で

int value1;
string value2;

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

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

フォーム Form1 で次のように呼び出します
new Form2 ( 111 , "222" ).Show ( ); //このように、2 つの値 111、"222" が静的変数を介して Form2

2 に転送されます

特徴: 値の転送は双方向であり、実装が簡単です
実装コードは次のとおりです。

アプリクラスで静的メンバー値を定義します

public class app
{
public static string value;
}

Form1 で次のように呼び出します
app.value = "f2";静的メンバーに値を代入
new Form2 ( ).Show ( ); // Form2

をフォーム2に表示

this.Text = app.value // app.valueの値を取得
app.value; Form2"; //他のフォームから呼び出せるように、app.value に値を割り当てます

3. フォームのパブリック プロパティ値を使用します

特徴: 簡単な実装
実装コードは次のとおりです:

textBox1 のテキスト値を取得および設定する Form2 の public property Form2Value

public string Form2Value
{
get

{

これを返します。 .Form2Value = "Ok"; //Form2
f2 の textBox1 に値 Ok を代入します。 ShowDialog ( );

4. フォームのパブリック プロパティ値と Owner プロパティを使用する (推奨)
特徴: シンプルで柔軟な実装
実装コードは次のとおりです:
フォーム Form1 で
public int Form1Value = 1; Form2 f2 = new Form2 ( );
f2.ShowDialog ( this ); // Form2 の所有者として Form1 を Form2 に渡します

フォーム Form2 で
// Form2 の所有者は Form1 です

Form1 f1 = (Form1) this。 Owner;

//Form1から取得した値は1です
MessageBox.Show ( f1.Form1Value .ToString ( ) );
//Form1に与えられたForm1Valueに値222を割り当てます
f1.Form1Value = 222;

5。フォームの public プロパティ値と Application.OpenForms プロパティ
説明: Application.OpenForms プロパティ: アプリケーションに属する開いているフォームのコレクションを取得します。 (このプロパティは .NET Framework バージョン 2.0 にあります)
実装コードは次のとおりです:
フォーム Form1 内
public int Form1Value = 1;

Form2 f2 = 新しい Form2 ( );

フォーム Form2 内

string formName = "Form1";
Form fr = Application.OpenForms [ formName ]; {
Form1 f1 = ( Form1 ) fr;

//Form1から取得した値は1

MessageBox.Show ( f1.Form1Value.ToString ( ) );
//Form1のForm1Valueの値を222に代入
f1.Form1Value = 222;
}

6. イベント
を通じて実装されるコードは次のとおりです:
フォーム Form2 でパブリック プロパティ Form2Value を定義し、textBox1 のテキスト値を取得および設定します

、また受け入れイベント

パブリック ストリング Form2Value
を定義します。 {
get

this.textBox1 を返します。
{
if ( accept != null )
{
Accept ( this , EventArgs.Empty );フォームはイベントをトリガーし、独自の参照を渡します
}
}

Form1
Form2 f2 = new Form2 ( );
f2 .accept += new EventHandler ( f2_accept );

f2.Show ( );


void f2_accept ( object sender , EventArgs e )
{
/ /イベントの受信者は、単純な型変換を通じて Form2 への参照を取得します
Form2 f2 = (Form2) sender;
//Form2 から textBox1.Text を受け取ります
this.textBox1.Text = f2.Form2Value
}


;

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
.NET内のC#コード:プログラミングプロセスの調査.NET内のC#コード:プログラミングプロセスの調査Apr 12, 2025 am 12:02 AM

.NETでのC#のプログラミングプロセスには、次の手順が含まれます。1)C#コードの作成、2)中間言語(IL)にコンパイルし、3).NETランタイム(CLR)によって実行される。 .NETのC#の利点は、デスクトップアプリケーションからWebサービスまでのさまざまな開発シナリオに適した、最新の構文、強力なタイプシステム、および.NETフレームワークとの緊密な統合です。

C#.NET:コアの概念とプログラミングの基礎を探るC#.NET:コアの概念とプログラミングの基礎を探るApr 10, 2025 am 09:32 AM

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。

テストC#.NETアプリケーション:ユニット、統合、およびエンドツーエンドテストテストC#.NETアプリケーション:ユニット、統合、およびエンドツーエンドテストApr 09, 2025 am 12:04 AM

C#.NETアプリケーションのテスト戦略には、ユニットテスト、統合テスト、エンドツーエンドテストが含まれます。 1.単位テストにより、コードの最小ユニットがMSTEST、ヌニット、またはXUNITフレームワークを使用して独立して動作することを保証します。 2。統合テストでは、一般的に使用されるシミュレートされたデータと外部サービスを組み合わせた複数のユニットの機能を検証します。 3.エンドツーエンドのテストでは、ユーザーの完全な操作プロセスをシミュレートし、通常、セレンは自動テストに使用されます。

高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース高度なC#.NETチュートリアル:次のシニア開発者インタビューをエースApr 08, 2025 am 12:06 AM

C#シニア開発者とのインタビューでは、非同期プログラミング、LINQ、.NETフレームワークの内部作業原則などのコア知識をマスターする必要があります。 1.非同期プログラミングは、非同期を通じて操作を簡素化し、アプリケーションの応答性を向上させるのを待ちます。 2.LinqはSQLスタイルでデータを操作し、パフォーマンスに注意を払います。 3.ネットフレームワークのCLRはメモリを管理し、ガベージコレクションに注意して使用する必要があります。

c#.netインタビューの質問と回答:専門知識を高めるc#.netインタビューの質問と回答:専門知識を高めるApr 07, 2025 am 12:01 AM

C#.NETインタビューの質問と回答には、基本的な知識、コアの概念、高度な使用が含まれます。 1)基本知識:C#は、Microsoftが開発したオブジェクト指向言語であり、主に.NETフレームワークで使用されています。 2)コアの概念:委任とイベントは動的な結合方法を可能にし、LINQは強力なクエリ関数を提供します。 3)高度な使用:非同期プログラミングは応答性を向上させ、式ツリーは動的コード構造に使用されます。

C#.NETを使用したマイクロサービスの構築:建築家向けの実用的なガイドC#.NETを使用したマイクロサービスの構築:建築家向けの実用的なガイドApr 06, 2025 am 12:08 AM

C#.NETは、その強力なエコシステムと豊富なサポートのため、マイクロサービスを構築するために人気のある選択肢です。 1)asp.netcoreを使用してRestfulapiを作成して、順序の作成とクエリを処理します。 2)GRPCを使用して、マイクロサービス間の効率的な通信を実現し、注文サービスを定義および実装します。 3)Dockerコンテナ化されたマイクロサービスを介して展開と管理を簡素化します。

C#.NETセキュリティベストプラクティス:一般的な脆弱性の防止C#.NETセキュリティベストプラクティス:一般的な脆弱性の防止Apr 05, 2025 am 12:01 AM

C#および.NETのセキュリティベストプラクティスには、入力検証、出力エンコード、例外処理、認証と承認が含まれます。 1)正規表現または組み込みのメソッドを使用して入力を検証して、悪意のあるデータがシステムに入るのを防ぎます。 2)XSS攻撃を防ぐための出力エンコード、httputility.htmlencodeメソッドを使用します。 3)例外処理により、情報の漏れが回避され、エラーが記録されますが、詳細情報はユーザーに返されません。 4)ASP.Netidentityおよび請求に基づく許可を使用して、不正アクセスから申請を保護します。

C言語で:それはどういう意味ですかC言語で:それはどういう意味ですかApr 03, 2025 pm 07:24 PM

C言語におけるコロン( ':')の意味:条件付きステートメント:条件付き式とステートメントの分離ブロックループステートメント:初期化、条件付きおよび増分式のマクロ定義の分離:マクロ名とマクロ値の分離単一行コメント:コメントアレイの寸法としてのコロンから行までのコンテンツを表す:アレイの寸法を指定する

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。