多くのラベルとテキストボックスを持つフォームがあります。いずれかのフィールドが変更されている場合は、タイトルを赤で強調表示したいと思います。これを行う簡単な方法はありますか、イベントコールバックを各フォームオブジェクトに個別に追加する必要がありますか?ありがとう!C#のすべてのフォームオブジェクトにイベントを追加する簡単な方法はありますか
5
A
答えて
0
各コントロールに関連付けられているイベントを確認すると、フォームにコード化されているすべてのイベントのリストを「ドロップダウン」することができます。たとえば、「Text Changed」イベントをダブルクリックすると、controlname_textchanged(...)
になります。ただし、すべての汎用ハンドラがある場合は、textchangedevent(...)
と呼びます。ジェネリックイベントハンドラは、送信者とイベントオブジェクトをそのイベントに関連付ける必要があります。
これをユーザーコントロールで行い、メインフォームを更新する必要がある場合は、これをpublic event eventobject youreventname
でバブリングし、そのイベントをメインフォームにバインドします。このような
0
何か作業をする必要があります:
foreach (System.Windows.Forms.Control cont in this.Controls)
cont.Validating += new System.Windows.Forms.ValidationEventHandler(this.Control_Validating_Method)
次にイベントのコードでコントロールタイプをテストし、元の値との値を比較することができます。あなたは、イベントを追加するために、フォームのLoadイベントでこのような何かを行うことができ、私の頭の上から
1
...
foreach (var control in this.Controls)
{
if (control is Label)
{
((Label)control).TextChanged += Controls_TextChanged;
}
else if (control is TextBox)
{
((TextBox)control).TextChanged += Controls_TextChanged;
}
}
0
はいあなたは簡単に同じイベントにコントロールを追加することができます。この例では、 'Labels'と 'Textboxes'を同じイベントに配置しています。
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control x in this.Controls)
{
if(x is Label)
((Label)x).MouseHover+=new EventHandler(AllLabels_HoverEvent);
else if(x is TextBox)
((TextBox)x).MouseHover+=new EventHandler(AllTextboxes_HoverEvent);
}
}
void AllLabels_HoverEvent(object sender, EventArgs e)
{
Label label = (Label)sender;
// label.dowhateveryouwant...
}
void AllTextboxes_HoverEvent(object sender, EventArgs e)
{
Textbox textbox = (Textbox)sender;
// textbox.dowhateveryouwant...
}
以下にコメントしてください他のコンテナにネストされたコントロールがある場合は、this.Controls
には含まれませんが、注意してください。
関連する問題
- 1. バルーンチップにチェックボックスを追加する簡単な方法はありますか?
- 2. VB2010の単一の単語に色を追加する簡単な方法はありますか?
- 3. JQueryを使ってdivに歯を追加する簡単な方法はありますか?
- 4. プロファイルプロバイダを除いて、ASP.NETメンバーシップにカスタムフィールドを追加する簡単な方法はありますか?
- 5. C#からWebカメラにアクセスする簡単な方法はありますか?
- 6. スピナーに「なし」オプションを追加する簡単な方法は?
- 7. Railsのリレーションテーブルにデータを追加する簡単な方法はありますか?
- 8. Cのパイプを簡単に消去する方法はありますか
- 9. Readlineに代わる簡単な方法はありますか?
- 10. Facebook c#sdkを使用する簡単な方法はありますか?
- 11. Powershell 2:出力のすべてのビットをファイルに転送する簡単な方法はありますか?
- 12. キャッシュマニフェストをMeteorアプリケーションに追加する簡単な方法は?
- 13. ListViewでアイテムを並べ替える簡単な方法はありますか?
- 14. $ 1、$&などのすべての "マジック変数"をローカライズ(保存)する簡単な方法はありますか?
- 15. Javascriptですべてのフィールドを簡単に追加する
- 16. SQL移行スクリプトにカスタム移行スクリプトを追加する簡単な方法はありますか?
- 17. C++の.NETイベントを実装する最も簡単な方法
- 18. CObListを簡単にソートする方法はありますか?
- 19. QProgressBarを簡単にカスタマイズする方法はありますか?
- 20. フレックスプリローダーを隠す簡単な方法はありますか?
- 21. リレーショナルデータベースのすべてのテーブルのすべてのセルにメタデータを追加する方法はありますか?
- 22. WebSphereに簡単にデプロイする方法はありますか?
- 23. ロールからすべてのメンバーを削除する簡単な方法はありますか
- 24. "elseif marathon"より簡単な方法はありますか?
- 25. レールはAJAX経由ですべてのアクションをレンダリングします - 簡単な方法はありますか?
- 26. 'using'ブロックを持つサービスですべてのWCFメソッドをラップする簡単な方法はありますか?
- 27. Javaでは、すべての引数をメソッドに簡単にダンプする方法はありますか?
- 28. NSArrayを後方に反復する簡単な方法はありますか?
- 29. BJ concurencyを扱う簡単な方法はありますか?
- 30. ディレクトリとすべてのファイルをsvnの下に追加する簡単なコマンド