6

詳細ビュー(リストをグリッドとして表示するビュー)にListViewコントロールがあります

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

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

問題は、カーソルが最初のリストビューの列の上にある場合にのみツールチップが表示され、残りの列には表示されないことです。とにかく「簡単に」見えるようにする方法があるかどうか知りたいですか?

4

1 に答える 1

7

いくつかの調査の後。私はこの方法で問題を解決しましたが、EventHandlerを回避する別の方法があるかどうかまだ疑問に思っています。

    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;
    }
于 2012-10-25T14:38:54.117 に答える