tooltip
在windows
中是乙個常用的顯示資訊的手段。當tooltip
的資訊很長的時候,我們最好能夠顯示為多行。也就是當tooltip
的資訊的長度超過某一閾值的時候,最好顯示為多行。windows
是提供了這樣的api
。非常遺憾的是,winforms
到目前為止暫時還不支援多行的tooltip
。如何在winforms
中設定tooltip
的最大長度,是winforms
程式設計師經常問到的乙個問題。
windows
是通過傳送ttm_setmaxtipwidth
訊息來設定tooltip
的最大長度的。因此,我們在winforms
中可以先得到乙個tooltip
的控制代碼,然後向該控制代碼傳送訊息。這裡我們需要做兩件事: 1.
得到tooltip
的控制代碼。由於handle
是tooltip
的乙個internal
屬性,在tooltip
的外部不能直接得到。好在.net
提供了反射機制,我們可以用反射來得到乙個tooltip
的控制代碼。 2.
給tooltip
傳送訊息。winforms
沒有直接提供傳送訊息的方法,因此我們必須通過p/invoke
呼叫windows api sendmessage。
做好了這兩方面的準備,我們就可以寫出如下的**:
internal
class
utility
// send a ttm_setmaxtipwidth message to a tooltip,
// to set its maximum length
public
static
void settooltipmaxlength(tooltip tooltip, int maxlength)
} 接下來我們建立乙個winforms
專案來驗證我們的辦法是不是有效,步驟如下: 1.
建立乙個新winforms
專案;
2.為form1
新增乙個按鈕,button1
,和乙個tooltip
,tooltip1;
3.開啟屬性視窗; 4.
選擇button1
,為屬性tooltop on tooltip1
設定乙個比較長的字串; 5.
在屬性視窗選擇事件頁面,為button1
新增mouseenter
事件處理器; 6.
編輯button1_mouseenter
的**如下:
const
int maxlength = 200;
private
void button1_mouseenter(object sender, eventargs e)
7.編譯並執行; 8.
把滑鼠停在button1
上,我們發現很長的tooltip
已經顯示為多行,如下面的截圖所示:
MFC 顯示 ToolTip 資訊
今天在寫程式時遇到滑鼠懸停在控制項上方顯示資訊,經查閱資料及實踐總結如下 該功能的實現主要是用ctooltipctrl類。首先在對話方塊的標頭檔案中加入初始化語句 public 下,加入 ctooltipctrl m mytip 然後在初始化對話方塊函式中加入 m mytip.create this...
cmd 把tooltip做成符合cmd規範
給屬性賦值 把傳入的屬性值和預設屬性值進行合併 function assignattribute tooltipobj,obj 1 把預設屬性值賦給tmpobj for let key in defaultobj 2 把傳來的屬性值賦給tmpobj for let key in obj 給toolt...
echart自動輪訓顯示tooltip
echart自動輪訓顯示 tooltip 1 顯示函式 echart自動輪訓顯示 tooltip 用於輪訓顯示 echart tooltip function showtooltip highlight mychart,currentindex 1000 引數解釋 a mychart echart ...