0

私はWinFormアプリケーションに取り組んでいます。フォームには多くのフィールド/コンポーネントがありますが、構築が不十分です。たとえば、あるフィールドはユーザー名として使用され、別のケースではフォルダー パスとして使用されます。コードのメンテナンスはかなり不十分です。

アプリケーションを実行して GUI が表示されたときに、コンポーネントの「名前」(ID ではない) を表示できる「spy++」などのツールを使用できる可能性があります。たとえば、ボタンの名前またはラベルの名前です。

または、「名前」に SPY++ を使用できる場合は教えてください。

4

1 に答える 1

1

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

最初に、フォームに ToolTip オブジェクトを追加します (デザイナーの [ツール] セクションから)。名前を変更することもできますが、デモのために、既定の名前のままにしました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);

これにより、フォーム内の各コントロールにツールヒント メッセージが追加されます。マウスを各コントロールの上に置くだけで、1 ~ 2 秒後に ToolTip が表示され、基になるコントロールの名前が表示されます。

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

于 2011-08-11T15:19:32.550 に答える