c# winform給Button等本身沒有tooltiptext屬性的控件添加tooltip提示

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爲我們提供了很多方便的可視化操作,我們很容易忽視其中的代碼實現,很多時候,我們需要從構造函數中發現控件的正確用法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章