Bagaimana saya bisa menampilkan tooltip di atas tombol menggunakan Formulir Windows ?
Bagaimana saya bisa menampilkan tooltip di atas tombol menggunakan Formulir Windows ?
Jawaban:
ToolTip sebenarnya adalah kontrol WinForms yang menangani menampilkan tips alat untuk beberapa elemen dalam satu bentuk.
Katakanlah tombol Anda disebut MyButton.
Tip alat akan secara otomatis muncul ketika kursor melayang di atas tombol, tetapi jika Anda perlu menampilkannya secara terprogram, panggil
MyToolTip.Show("Tooltip text goes here", MyButton)
dalam kode Anda untuk menampilkan tooltip, dan MyToolTip.Sembunyikan (MyButton) untuk membuatnya menghilang lagi.
Menggunakan desainer formulir:
Anda dapat mengatur juga tip alat secara terprogram menggunakan panggilan berikut:
this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
Anda bisa menggunakan kelas ToolTip:
Membuat Tip Alat untuk Kontrol
Contoh:
private void Form1_Load(object sender, System.EventArgs e)
{
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.Button1, "Hello");
}
new ToolTip().SetToolTip(this.Button1, "Hello");
Untuk tooltip default ini dapat digunakan -
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello world");
Tooltip yang dikustomisasi juga dapat digunakan jika perlu format untuk pesan tooltip. Ini dapat dibuat dengan memformat kustom formulir dan menggunakannya sebagai dialog tooltip pada acara mouse kontrol hover. Silakan periksa tautan berikut untuk detail lebih lanjut -
http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html
Malas dan kompak menyimpan teks di properti Tag
Jika Anda agak malas dan tidak menggunakan properti Tag dari kontrol untuk hal lain, Anda dapat menggunakannya untuk menyimpan teks tooltip dan menetapkan pengendali event MouseHover ke semua kontrol seperti itu dalam sekali jalan seperti ini:
private System.Windows.Forms.ToolTip ToolTip1;
private void PrepareTooltips()
{
ToolTip1 = new System.Windows.Forms.ToolTip();
foreach(Control ctrl in this.Controls)
{
if (ctrl is Button && ctrl.Tag is string)
{
ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a)
{
var btn = (Control)o;
ToolTip1.SetToolTip(btn, btn.Tag.ToString());
});
}
}
}
Dalam hal ini semua tombol yang memiliki string di properti Tag ditetapkan sebagai peristiwa MouseHover . Agar tetap kompak, acara MouseHover didefinisikan sebaris menggunakan ekspresi lambda. Jika ada tombol apa pun yang melayang-layang akan memiliki tag teks yang ditetapkan untuk Tooltip dan ditampilkan.
Kerangka .NET menyediakan kelas ToolTip. Tambahkan salah satu dari itu ke formulir Anda dan kemudian pada acara MouseHover untuk setiap item yang Anda inginkan untuk tooltip, lakukan sesuatu seperti berikut ini:
private void checkBox1_MouseHover(object sender, EventArgs e)
{
toolTip1.Show("text", checkBox1);
}
private void Form1_Load(object sender, System.EventArgs e)
{
ToolTip toolTip1 = new ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = true;
toolTip1.SetToolTip(this.button1, "My button1");
toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
}
Berdasarkan jawaban DaveK , saya membuat ekstensi kontrol:
public static void SetToolTip(this Control control, string txt)
{
new ToolTip().SetToolTip(control, txt);
}
Kemudian Anda dapat mengatur tooltip untuk kontrol apa pun dengan satu baris:
this.MyButton.SetToolTip("Hello world");
Tentu, cukup tangani acara mousehover dan katakan untuk menampilkan tip alat. t adalah tooltip yang didefinisikan dalam global atau dalam konstruktor menggunakan:
ToolTip t = new ToolTip();
maka pengendali acara:
private void control_MouseHover(object sender, EventArgs e)
{
t.Show("Text", (Control)sender);
}