1. 對於沒有tooltiptext屬性的控件來說,要如何添加提示語呢?
在網上查了,大部分介紹都是在控件的MouseEnter事件中寫代碼:
ToolTip p = new ToolTip();
p.ShowAlways = true;
p.SetToolTip(this.button1, "要顯示的文字");
但是如果一個窗口有很多控件,豈不是要寫很多重複的代碼。
可以優化爲每個控件使用同一個mouseenter事件,代碼爲
private void 控件_MouseEnter(object sender, EventArgs e)
{
ToolTip p = new ToolTip();
p.ShowAlways = true;
if ((Control)sender==btn_返回)p.SetToolTip((Control)sender, "取消");
if ((Control)sender==btn_受理)p.SetToolTip((Control)sender, "受理訂單");
.....其他控件
}
2. 實際上,.net本身已經給我們提供了tooltip控件,很方便的就可以添加提示語了。
2.1 拖一個tooltip到窗口中後,窗口中的所有控件都會自動添加一個屬性:tooltip1上的ToolTip,只要在每個控件的這個屬性填上對應的提示語就行了。
實際效果:
2.2 在添加提示語後去構造函數裏面查看,代碼其實很簡單。窗口添加一個tooltip後,使用SetToolTip方法就行了
this.toolTip1.SetToolTip(this.btn_顯示下一單, "受理訂單並顯示下一單");
2.3 於是我自己用代碼嘗試了一下:
public Form_上下班設定()
{
InitializeComponent();
ToolTip tooltip1 = new ToolTip();
tooltip1.IsBalloon = true;
tooltip1.SetToolTip(lbl_設定, "保存設定");
tooltip1.SetToolTip(txt_堂食歇業公告, "顧客將會看到你的公告,請不要亂寫!");
}
實際效果:
所以,tootip,根本不需要使用MouseEnter事件。
3. 總結:有些方法能實現同樣的效果,但不一定是最佳的。.net爲我們提供了很多方便的可視化操作,我們很容易忽視其中的代碼實現,很多時候,我們需要從構造函數中發現控件的正確用法。