• C# ListView 自定义ToolTip 显示


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace DemoTolltip
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
            private ToolTip lvTp = new ToolTip();
            private ListViewItem currentItem = new ListViewItem();
            private void Form2_Load(object sender, EventArgs e)
            {
                listView1.View = View.LargeIcon;
                listView1.FullRowSelect = true;
               // listView1.GridLines = true;
                listView1.Columns.Add("Column1");
                listView1.Columns.Add("Column2");
                for (int i = 0; i < 10; i++)
                {
                    ListViewItem lvi = new ListViewItem();
                    lvi.SubItems[0].Text = i.ToString();
                    lvi.ImageIndex = i;
                    lvi.SubItems.Add("Item" + i.ToString());
                    lvi.ToolTipText = "Item" + i.ToString() +"
    " +strShowIms;
                 
                    listView1.Items.Add(lvi);
                }
              //  listView1.ShowItemToolTips = true;
                listView1.MouseMove += new MouseEventHandler(listView1_MouseMove);
                lvTp.OwnerDraw = true;
                lvTp.Draw += new DrawToolTipEventHandler(lvTp_Draw);
                lvTp.Popup += new PopupEventHandler(lvTp_Popup);
            }
            string strShowIms = @"sssAAAAAAA
              1  AAAAAAAAAAAAAAAAAAAAA
               2     AAAAAAA
             2     AAAAAAA
             3     AAAAAAA
             4     AAAAAAA
             5     AAAAAAA
             6     AAAAAAA
             7     AAAAAAA
             8     AAAAAAA
             9     AAAAAAA
    ";
            string strText = "";
            public void lvTp_Popup(object sender, PopupEventArgs e)
            {
                Size s = TextRenderer.MeasureText(strText, f);
                e.ToolTipSize = new Size(s.Width, s.Height + 40);
            }
            Font f = new Font("宋体", 10.0f);
            Font fTitle = new Font("宋体", 12.0f);
            void lvTp_Draw(object sender, DrawToolTipEventArgs e)
            {
                using (e.Graphics)
                {
                    int x = e.Bounds.Width;
                    int y = e.Bounds.Height;
                    e.DrawBackground();
    
                    SolidBrush b = new SolidBrush(Color.FromArgb(233, 240, 245));//矩形背景色
                    SolidBrush border = new SolidBrush(Color.FromArgb(190, 219, 249));//边框颜色
                    Rectangle recg = new Rectangle(0, 0, x, 30);
    
                    e.Graphics.FillRectangle(b, recg);
                    e.Graphics.DrawRectangle(new Pen(border), recg);
                    e.Graphics.DrawRectangle(new Pen(border), 0, 0, x - 1, y - 1);
                    int tempx = x / 4;
                    if (x < 180 && x > 100)
                    {
                        tempx = 10;
                    }
                    else if (x <= 100)
                    {
                        tempx = 5;
                    }
                    e.Graphics.DrawImage(global::DemoTolltip.Properties.Resources.当前床位信息, new PointF(tempx, 5));
                    e.Graphics.DrawString("当前信息", fTitle, Brushes.Black, new PointF(tempx + 40, 7));
                    // e.Graphics.DrawLine(new Pen(Brushes.Blue),new Point(1,30),new Point(400,30));
                    e.Graphics.DrawString(e.ToolTipText, f, Brushes.Black, new PointF(4, 40));     
                }
            }
    
            void listView1_MouseMove(object sender, MouseEventArgs e)
            {
                ListViewItem lvi = listView1.GetItemAt(e.X, e.Y);
                if (lvi != null && lvi != currentItem)
                {
                    strText = lvi.ToolTipText;
                    currentItem = lvi;
                    lvTp.Show(lvi.ToolTipText, listView1, e.Location);
                }
                else if (lvi == null)
                {
                    strText="";
                    lvTp.Hide(listView1);
                }
                currentItem = lvi;
            }
    
      
           
        }
    }
    

      

  • 相关阅读:
    jeecg t:treeSelectTag 联动处理
    saas动态数据源
    jquery ajax超时设置
    创建mysql 数据库脚本
    Java动态创建MySQL数据库
    ant执行sql脚本
    jeecg jeewx 多表查询展示
    @JoinColumn 详解
    hibernate关联映射注解及@JoinColumn的用法
    算发帖——俄罗斯方块覆盖问题一共有多少个解
  • 原文地址:https://www.cnblogs.com/china-guoch/p/5126570.html
Copyright © 2020-2023  润新知