1

重複の可能性:
カスタム ツールチップ C# を作成する

ユーザーが特定のアイテムにカーソルを合わせたときにボックスを「ポップアップ」する方法を知っている人はいますか?

たとえば、C# フォーム アプリケーションに PictureBox を配置したいのですが、ユーザーがその上にカーソルを合わせると、テキスト ボックスがポップアップ表示されます。

ToolTipただし、もっとカスタマイズ可能なものを考えていたことは承知しています。私の考えでは、World of WarCraft でインベントリ内のアイテムにカーソルを合わせたときに表示されるポップアップ ボックスの種類を考えています (明らかに、それほど派手である必要はありませんが、少なくともテキストの色、背景色、テキストなどはすべて変更可能です)。

4

3 に答える 3

3

ToolStripControlHostを使用して、コントロール (パネルなど) をホストし、必要なコンテンツを追加できます。次に、Items コレクションを使用してそのコントロールをToolStripDropDownに追加し、 Show(Control,Point)メソッドを使用してコントロールを表示します。


例を追加すると思いました

public class Form1 {
    public Form1() {
        ToolStripDropDown customToolTip = new ToolStripDropDown();
        customToolTip.Items.Add(new CustomPopupControl("Hello", "world"));
        MouseMove += (o, e) => {
            Point location = e.Location;
            location.Offset(0, 16);
            customToolTip.Show(this, location);
        };
    }

    class CustomPopupControl : ToolStripControlHost {
        public CustomPopupControl(string title, string message)
            : base(new Panel()) {
            Label titleLabel = new Label();
            titleLabel.BackColor = SystemColors.Control;
            titleLabel.Text = title;
            titleLabel.Dock = DockStyle.Top;

            Label messageLabel = new Label();
            messageLabel.BackColor = SystemColors.ControlLightLight;
            messageLabel.Text = message;
            messageLabel.Dock = DockStyle.Fill;

            Control.MinimumSize = new Size(90, 64);
            Control.Controls.Add(messageLabel);
            Control.Controls.Add(titleLabel);
        }
    }
}
于 2012-10-23T22:01:03.440 に答える
1

ボタンまたはイメージ ボタンの場合は、MouseHover アクションのようなものを追加して、メッセージを表示できます。

private void button1_MouseHover(object sender, System.EventArgs e) 
{
MessageBox.Show("yourmessage"); 

} 
于 2012-10-23T21:40:39.360 に答える
0

ツールチップをカスタマイズする必要があります。http://www.codeproject.com/Articles/98967/A-ToolTip-with-Title-Multiline-Contents-and-Imageを参照して ください

他にもいくつかの記事がありますが、これは私にとってはうまくいきます。

要件に合わせてコードを追加する必要がある場合があります。

于 2012-10-23T21:57:28.037 に答える