2014-10-02 72 views
1

我有一個DataGridView,顯示每個課程的學生要點,並且在某些時候,我應該通過Tooltip顯示有關該點的一些信息。我想要的是,當用戶輸入一個特定的單元格,2秒後ToolTip將顯示在當前單元格中,將顯示2秒鐘的時間並顯示有關該點的信息。我使用的代碼:Datagridview單元格工具提示延遲時間

private void dgwPNotlar_CellMouseEnter(object sender, DataGridViewCellEventArgs e) 
    { 
     var hucre = dgwPNotlar.CurrentCell; 
     var hucre_loc = dgwPNotlar.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false); 

     toolTip1.Show("//Info&" + e.ColumnIndex.ToString() + "&" + e.RowIndex.ToString(), dgwPNotlar, hucre_loc.X, hucre_loc.Y); 
    } 

我設置AutomaticDelay 500,AutoPopDelay 2000年,在initialDelay 2000和重新顯示延遲2000的工具提示。但是,當我輸入Datagridview單元格時,ToolTip會立即出現並且不會消失。當我檢查我的代碼時,我看到這種方法被多次調用,儘管鼠標仍然停留在單元格中。

我該怎麼辦?

+0

請參閱以下網址 [#1] [1] [#1] [2] [1]:http://stackoverflow.com/questions/5718141/how -to-override-default-tooltip-behavior-of-ac-sharp-datagridview-to-increase -t [2]:http://stackoverflow.com/questions/7205385/how-do-i-set-在-autopopdelay-FOR-A-提示-IN-A-datagridview的細胞 – 2014-10-02 06:31:15

回答

0

如果ToolTip沒有被自動顯示,所有那些「自動」的東西是不相關的。你手動顯示它,所以沒有任何延遲。如果你想延遲,那麼你需要使用Timer

如果你想的2秒2000的IntervalShowTick事件處理的延遲,然後Start一個TimerToolTip。您也可以處理網格的CellMouseLeave事件,並且StopTimer那裏,因此如果用戶在延遲結束之前離開該單元格,則會在顯示該提示之前取消該提示。

+0

你可以給我一個例子嗎? – 2014-10-02 14:55:06

+0

好的,它工作。謝謝@ jmcilhinney – 2014-10-03 13:29:44

0

我發現爲什麼要調用DataGridView_CellEnter事件多次。當工具提示顯示在單元格上(基於單元格矩形的位置)時,鼠標指針停留在工具提示上,並且點跟蹤器使用單元格疊加和工具提示疊加。這使CellEnter和CellLeave methots多次被調用。

謝謝大家。

相關問題