2012-05-09 28 views
4

フォームに複数のインスタンスを持つuvSelfLoadingTextBoxがあります。 実行時に_valueプロパティのツールチップを読み込みたいとします。winformでユーザー定義のテキストボックスにツールチップを追加する方法

私がコントロール内

public ucSelfLoadingTextBox() 
{ 
    Windows.Forms.ToolTip myToolTip; 
    myToolTip.AutomaticDelay = 5000; 
    myToolTip.AutoPopDelay = 50000; 
    myToolTip.InitialDelay = 100; 
    myToolTip.ReshowDelay = 500; 

    myToolTip.SetToolTip(this, _value); 

を試みたが、それは動作しません。

は、私は、フォーム

ucSelfLoadingLogicTextBox uc = new ucSelfLoadingLogicTextBox(); 
    toolTipA.SetToolTip(uc,uc._value); 

上にドラッグされるツールチップを使用してみましたが、それは動作しません。

これを行う正しい方法は何ですか?

+2

あなたは、例外のいくつかの種類を取得していますか? – animaonline

答えて

2

myToolTipをインスタンス化するのを忘れました。 new Tooltip()に設定する必要があります。

また、テキストボックスのコンストラクタにツールチップを割り当てるのは良い方法ではないと思います。 OnCreateControl()(これを上書きする必要があります)でこれを行うことができます。

あなたのコードでは、そのためになることができます:

protected override void OnCreateControl() 
{ 
    base.OnCreateControl(); 

    var myToolTip = new System.Windows.Forms.ToolTip 
    { 
     AutomaticDelay = 5000, 
     AutoPopDelay = 50000, 
     InitialDelay = 100, 
     ReshowDelay = 500 
    }; 

    myToolTip.SetToolTip(this, this.Text); 
} 
+0

それは完璧に動作します。私が望んでいただけ。 – Hunt

+0

これは、これは正常に動作します。設計時にはこのテキストが表示されますが、コントロールの古い値のみが表示されます。 text = designtimeとなり、テキスト値はコードによってtext = newvalueに変更されます。ツールヒントには "designtime"が表示されます。 – Hunt

+0

コントロールを更新する方法はありますか?何らかの種類のonChangeイベントが必要ですか? – Hunt

0

Windowsフォームの多くの表示コントロールには、ツールヒントプロパティがあります。新しく作成したツールチップを設定するだけです。フォームにツールチップを追加することもできます。あなたはこれを試しましたか?

myToolTip.ShowAlways = true; 

このヒントをボタンコントロールに設定しようとします。これはあなたのツールチップのための良いテストかもしれません。

関連する問題