2012-10-25 10 views
5

Ho un controllo ListView nella visualizzazione Dettagli come quella (la vista che mostra l'elenco come una griglia)Come impostare suggerimento per un ListViewSubItem

mListView.View = View.Details; 
    mListView.mLVSelectedObject.ShowItemToolTips = true; 

    ListViewItem listViewItem = mListView.Items.Add(lValue.Name); 
    listViewItem.ToolTipText = "AAAAAAAAAAAAAAAAA"; 

Il problema è che il tooltip mostra solo quando i cursori è sopra la prima colonna della lista, ma non per il resto. Voglio sapere se c'è comunque qualcosa da far apparire "facilmente"?

+1

Stai cercando di aggiungere un suggerimento per l'intero listview o vuoi un suggerimento diverso per ogni elemento? – Joe

+0

Voglio uno solo suggerimento per ogni riga. (Lo stesso suggerimento per ogni sottoelemento di un listviewitem). – Osk

risposta

6

Dopo alcune ricerche. Ho risolto il problema in questo modo, ma mi chiedo ancora se c'è un altro modo per evitarlo, evitando EventHandlers;

ToolTip  mTooltip; 
    Point mLastPos = new Point(-1, -1); 

    private void listview_MouseMove(object sender, MouseEventArgs e) 
    { 
     ListViewHitTestInfo info = mLV.HitTest(e.X, e.Y); 

     if (mTooltip == null) 
      mTooltip = new ToolTip(); 

     if (mLastPos != e.Location) 
     { 
      if (info.Item != null && info.SubItem != null) 
      { 
       mTooltip.ToolTipTitle = info.Item.Text; 
       mTooltip.Show(info.SubItem.Text, info.Item.ListView, e.X, e.Y, 20000); 
      } 
      else 
      { 
       mTooltip.SetToolTip(mLV, string.Empty); 
      } 
     } 

     mLastPos = e.Location; 
    } 
+0

Perché non stai gestendo MouseHover invece di MouseMove ?, oltre alla proprietà "ShowItemToolTips", basta impostarlo su true e stai bene. –

+1

@ user1803300: È davvero difficile usare questa funzione su 'MouseHover'. Il primo problema non hai le coordinate, devi gestire molti altri eventi e ci sono anche errori imprevisti. Quando avrò completato il codice (e non sarà di lunghezza normale) lo posterò qui. – Julo

Problemi correlati