c#: show tooltip on subitem

拈花ヽ惹草 提交于 2019-12-23 14:22:43

问题


I have a listview, and in one of the columns (not the first) I want to display an error code.

What I haven't been able to do is get the ToolTip to display. I have

this.lstList.ShowItemToolTips = true;
...
ListViewItem value = lstList.Items.Add(name, name, 0);
...
if (lstList.Columns.Contains(lstColErrorCode))
{                                
  value.SubItems.Add(new ListViewItem.ListViewSubItem(value, errorCode.ToString()));
  value.ToolTipText = errorCode.ToString("X");
}

I would like to get the hex value of the code to be shown on the tooltip above the decimal value, but it shows above the name.

I haven't been able to get anything I tried to work (like trying to get the coordinates of the subitem). I would appreciate any suggestion.


回答1:


this code works for me

ToolTip toolTip1 = new ToolTip();

void initMethod()
{
    lstList.MouseMove += new MouseEventHandler(lstList_MouseMove);//mousemove handler
    this.lstList.ShowItemToolTips = true;            
    toolTip1.SetToolTip(lstList,"");// init the tooltip
    ...
    ListViewItem value = lstList.Items.Add(name, name, 0);
    ...
    if (lstList.Columns.Contains(lstColErrorCode))
    {                                
        ListViewItem.ListViewSubItem lvs =  value.SubItems.Add(new ListViewItem.ListViewSubItem(value, errorCode.ToString()));
        lvs.Tag = "mydecimal"; // only the decimal subitem will be tooltiped
    }
}

the mousemove event from the listview:

void lstList_MouseMove(object sender, MouseEventArgs e)
{
    ListViewItem item = lstList.GetItemAt(e.X, e.Y);
    ListViewHitTestInfo info = lstList.HitTest(e.X, e.Y);

    if ((item != null) && (info.SubItem != null) && (info.SubItem.Tag!=null) && (info.SubItem.Tag.ToString() == "mydecimal"))
    {
        toolTip1.SetToolTip(lstList,((decimal)info.SubItem.Text).ToString("X"));
    }
    else
    {
        toolTip1.SetToolTip(lstList, "");
    }
}


来源:https://stackoverflow.com/questions/11839323/c-show-tooltip-on-subitem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!