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 を使用します。
ウィンドウ内ではボディが作成される前に表示モードを知ることができないため、フォームコンストラクターではModal属性は常にfalseに対応するため、Modal属性値はLoadイベント以降でのみ使用できます
フォーム関係の所有者を決定する方法?
Form クラスの Owner プロパティ: フォームの所有者
フォームが別のフォームによって所有されている場合、そのフォームは最小化され、所有者のフォームとともに閉じられます。
たとえば、フォーム Form1
Form2 f2 = new Form2 ( );
f2.ShowDialog ( this );
f2.Show ( this );
//or
f2.Owner = this;
f2 .ShowDialog( );
このように、f2のオーナーはForm1です
B.WinFormフォームの値の転送
特徴: 値の転送は一方向であり (値を相互に転送することはできません)、実装は簡単です
実装コードは次のとおりです:
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
特徴: 値の転送は双方向であり、実装が簡単です
実装コードは次のとおりです。
public class app
{
public static string value;
}
Form1 で次のように呼び出します
app.value = "f2";静的メンバーに値を代入
new Form2 ( ).Show ( ); // Form2
this.Text = app.value // app.valueの値を取得
app.value; Form2"; //他のフォームから呼び出せるように、app.value に値を割り当てます
特徴: 簡単な実装
実装コードは次のとおりです:
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から取得した値は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 ( );
string formName = "Form1";
Form fr = Application.OpenForms [ formName ]; {
Form1 f1 = ( Form1 ) fr;
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 );
void f2_accept ( object sender , EventArgs e )
{
/ /イベントの受信者は、単純な型変換を通じて Form2 への参照を取得します
Form2 f2 = (Form2) sender;
//Form2 から textBox1.Text を受け取ります
this.textBox1.Text = f2.Form2Value
}
;

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









c言語のシンボルの使用方法は、算術、割り当て、条件、ロジック、ビット演算子などをカバーします。算術演算子は基本的な数学的操作に使用されます。割り当てと追加、下位、乗算、除算の割り当てには、条件操作に使用されます。ポインター、ファイル終了マーカー、および非数値値。

Cでは、文字列でCharタイプが使用されます。1。単一の文字を保存します。 2。配列を使用して文字列を表し、ヌルターミネーターで終了します。 3。文字列操作関数を介して動作します。 4.キーボードから文字列を読み取りまたは出力します。

C言語では、以下などのエスケープシーケンスを通じて特殊文字が処理されます。\ nはラインブレークを表します。 \ tはタブ文字を意味します。 ESACEシーケンスまたは文字定数を使用して、Char C = '\ n'などの特殊文字を表します。バックスラッシュは2回逃げる必要があることに注意してください。さまざまなプラットフォームとコンパイラが異なるエスケープシーケンスを持っている場合があります。ドキュメントを参照してください。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

Char Arrayは文字シーケンスをC言語で保存し、char array_name [size]として宣言されます。アクセス要素はサブスクリプト演算子に渡され、要素は文字列のエンドポイントを表すnullターミネーター「\ 0」で終了します。 C言語は、strlen()、strcpy()、strcat()、strcmp()など、さまざまな文字列操作関数を提供します。

C言語では、charとwchar_tの主な違いは文字エンコードです。CharはASCIIを使用するか、ASCIIを拡張し、WCHAR_TはUnicodeを使用します。 Charは1〜2バイトを占め、WCHAR_Tは2〜4バイトを占有します。 charは英語のテキストに適しており、wchar_tは多言語テキストに適しています。 CHARは広くサポートされており、WCHAR_TはコンパイラとオペレーティングシステムがUnicodeをサポートするかどうかに依存します。 CHARの文字範囲は限られており、WCHAR_Tの文字範囲が大きく、特別な機能が算術演算に使用されます。

C言語では、charタイプの変換は、キャスト:キャスト文字を使用することにより、別のタイプに直接変換できます。自動タイプ変換:あるタイプのデータが別のタイプの値に対応できる場合、コンパイラは自動的に変換します。

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。
