2011-08-10 7 views
0

私はWinFormアプリケーションを開発中です。 フォームには多くのフィールドやコンポーネントがありますが、作成は難しいです。 たとえば、あるケースではフィールドがユーザー名として使用され、もう1つのケースではフォルダパスとして使用されます。コードは非常によく管理されていません。Windowsフォームアプリケーションのフォームフィールドを知るツール

私はアプリケーションを実行するとGUIが表示されますが、私は 'spy ++'のようなツールを使用して、コンポーネントの名前(idsではない)を表示できます。たとえば、ボタン名やラベル名などです。

また、「名前」にSPY ++を使用することができますか教えてください。

+0

私は、System.Reflectionクラスがここでもっと役に立ちそうだと思います。 – LarsTech

答えて

1

フォームにツールヒントコントロールを追加し、各コントロールを繰り返し、各コントロールにコントロールの名前であるツールヒントメッセージを追加することで、この問題を解決できます。

最初に、デザイナーのツールセクションからフォームにツールチップオブジェクトを追加します。名前を変更することはできますが、私のデモのために、デフォルト名はtoolTip1です。

次に、フォームのコードページに、以下に投稿しているのと同様のメソッドを追加します。 (私はこれがC#用であると仮定していますが、コードは単純でVBまたはC++用に簡単に変更できます)。

public void AddNameToToolTip(Control c) 
{ 
    toolTip1.SetToolTip(c, c.Name); 
    foreach (Control child in c.Controls) AddNameToToolTip(child); 
} 

最後に、フォームコンストラクタ内で、InitializeComponent()の呼び出しの後に次のコード行を追加します。

AddNameToToolTip(this); 

これは、フォームの各コントロールにツールヒントメッセージを追加します。あなたがしなければならないのは、各コントロールの上にマウスを置くだけです。ツールヒントは、基本コントロールの名前を2〜2回表示した後にメッセージをポップアップ表示します。

また、各コントロールにMouseHoverイベントを再帰的に追加することができます。イベントが発生すると、コントロールの名前をデバッガに書き込みます。これは、フォーム内で既にツールヒントコントロールを使用している場合にも機能します。

+0

すばらしい、ありがとう... – Umer

関連する問題