1

ツールチップをツールストリップボタンに適用しようとしていますが、次のエラーが発生し続けます。

Operator '==' cannot be applied to operands of type 'System.Windows.Forms.Control' and 'System.Windows.Forms.ToolStripButton'

これを解決する方法についての手がかりはありますか?

アップデート:

private void toolTip1_Popup(object sender, PopupEventArgs e)
{
    if (e.AssociatedControl == tBtn1)
    {
        using (Font f = new Font("Tahoma", 9))
        {
            e.ToolTipSize = TextRenderer.MeasureText(
                toolTip1.GetToolTip(e.AssociatedControl), f);
        }
    }
}
4

3 に答える 3

4

ToolStripButtonToolStripItemプロパティを持つから派生しToolTipTextます。

既に説明したように、ToolStripItemはクラスから派生しないためControl、ツール ヒントをレンダリングするための独自の実装を提供します。この投稿は、ツールチップのカスタマイズに役立つ場合があります。

于 2012-06-25T15:43:01.397 に答える
0

不思議なことに、toolstripbuttonクラスは、他のSystem.Windows.Forms guiコンポーネントとは異なり、Controlクラスから継承しません。おそらくあなたのコードe.AssociatedControlでは、System.Windows.Formsコントロールで使用することを意図しています。つまり、MSはストリップコントロールのツールチップを提供することを決定していないと思います。正確な要件はわかりませんが、クリックする可能性のある別の方法については、このリンクを参照してください。

于 2012-06-25T15:38:25.330 に答える
0

更新: Winform プロジェクトでこれを試してみて成功しなかった後、SO の他のスレッドを検索しました。これはあなたに役立つかもしれません:

フォーカスされていない ToolStripItem にツールチップを表示する

最初の問題は、ボタンに直接設定できないこと、Control から継承されないこと、ストリップ上ではあるがボタン上でない限りツールチップが表示されないことです。

他の場所

私も同じことをやろうとしていたのですが、それはかなり難しく、やる価値がないと判断しました。その理由は、.NET コードは、ウィンドウがアクティブな場合にのみツールチップを表示するように内部的に特別に設計されているためです。Win32 レベルでこれをチェックしているため、コードを偽造するのは困難です。

ユーザーはどの回答も真として受け入れませんでした。一見すると、これはわずかな報酬で多くの作業を行っているように見えます。これはゼロからのプロジェクトですか?もしそうなら、winform よりもはるかに柔軟な WPF を使用してそれを行うことができます。

于 2012-06-25T15:01:13.330 に答える