在Winform中怎么当鼠标停在DatagridView某一列上时,弹出一个悬浮框,显示行更多的信息

时间:2021-05-19 19:32:28
在Winform中怎么当鼠标停在DatagridView某一列上时,弹出一个悬浮框,显示行更多的信息
在线等

6 个解决方案

#1


用tooltip控件

#2


引用 1 楼 guanmingle 的回复:
用tooltip控件

效果就是tooltip那样的,但是我想在DataGridView上做,能赐教吗??

#3


设置一个ToolTip来显示这个Cell的内容



public Form1()
        {
            InitializeComponent();
            dataGridView1.Rows.Add(new object[] { "Ace", 18, 1310000000 });
            dataGridView1.MouseMove += new MouseEventHandler(dataGridView1_MouseMove);
        }

private ToolTip m_ToolTip = new ToolTip();

        void dataGridView1_MouseMove(object sender, MouseEventArgs e)
        {
            System.Windows.Forms.DataGridView.HitTestInfo info = dataGridView1.HitTest(e.X, e.Y);
            if (info.ColumnIndex < 0 || info.RowIndex < 0)
                return;

            DataGridViewCell cell = dataGridView1[info.ColumnIndex, info.RowIndex];
            if (cell.Value == null)
                return;
            Point p = new Point(dataGridView1.Location.X + e.Location.X, dataGridView1.Location.Y + e.Location.Y);
            m_ToolTip.Show(cell.Value.ToString(), this, p.X, p.Y + 50);
        }


效果图
在Winform中怎么当鼠标停在DatagridView某一列上时,弹出一个悬浮框,显示行更多的信息

#4


引用 3 楼 lorenliu 的回复:
设置一个ToolTip来显示这个Cell的内容


C# code


public Form1()
        {
            InitializeComponent();
            dataGridView1.Rows.Add(new object[] { "Ace", 18, 1310000000 });
            dataGr……


这只是一个单元格的,我想让这个黄色区域显示更多的信息,包括通过这行的ID读到的数据。但是还是谢谢你,把分给你了。

#5


该回复于2011-05-03 10:04:29被版主删除

#6


引用 3 楼 LorenLiu 的回复:
设置一个ToolTip来显示这个Cell的内容



public Form1()
        {
            InitializeComponent();
            dataGridView1.Rows.Add(new object[] { "Ace", 18, 1310000000 });
            dataGridView1.MouseMove += new MouseEventHandler(dataGridView1_MouseMove);
        }

private ToolTip m_ToolTip = new ToolTip();

        void dataGridView1_MouseMove(object sender, MouseEventArgs e)
        {
            System.Windows.Forms.DataGridView.HitTestInfo info = dataGridView1.HitTest(e.X, e.Y);
            if (info.ColumnIndex < 0 || info.RowIndex < 0)
                return;

            DataGridViewCell cell = dataGridView1[info.ColumnIndex, info.RowIndex];
            if (cell.Value == null)
                return;
            Point p = new Point(dataGridView1.Location.X + e.Location.X, dataGridView1.Location.Y + e.Location.Y);
            m_ToolTip.Show(cell.Value.ToString(), this, p.X, p.Y + 50);
        }


效果图
在Winform中怎么当鼠标停在DatagridView某一列上时,弹出一个悬浮框,显示行更多的信息

CPU占用太恐怖,win732位
测试,不断移动鼠标随时飙升到50%

#1


用tooltip控件

#2


引用 1 楼 guanmingle 的回复:
用tooltip控件

效果就是tooltip那样的,但是我想在DataGridView上做,能赐教吗??

#3


设置一个ToolTip来显示这个Cell的内容



public Form1()
        {
            InitializeComponent();
            dataGridView1.Rows.Add(new object[] { "Ace", 18, 1310000000 });
            dataGridView1.MouseMove += new MouseEventHandler(dataGridView1_MouseMove);
        }

private ToolTip m_ToolTip = new ToolTip();

        void dataGridView1_MouseMove(object sender, MouseEventArgs e)
        {
            System.Windows.Forms.DataGridView.HitTestInfo info = dataGridView1.HitTest(e.X, e.Y);
            if (info.ColumnIndex < 0 || info.RowIndex < 0)
                return;

            DataGridViewCell cell = dataGridView1[info.ColumnIndex, info.RowIndex];
            if (cell.Value == null)
                return;
            Point p = new Point(dataGridView1.Location.X + e.Location.X, dataGridView1.Location.Y + e.Location.Y);
            m_ToolTip.Show(cell.Value.ToString(), this, p.X, p.Y + 50);
        }


效果图
在Winform中怎么当鼠标停在DatagridView某一列上时,弹出一个悬浮框,显示行更多的信息

#4


引用 3 楼 lorenliu 的回复:
设置一个ToolTip来显示这个Cell的内容


C# code


public Form1()
        {
            InitializeComponent();
            dataGridView1.Rows.Add(new object[] { "Ace", 18, 1310000000 });
            dataGr……


这只是一个单元格的,我想让这个黄色区域显示更多的信息,包括通过这行的ID读到的数据。但是还是谢谢你,把分给你了。

#5


该回复于2011-05-03 10:04:29被版主删除

#6


引用 3 楼 LorenLiu 的回复:
设置一个ToolTip来显示这个Cell的内容



public Form1()
        {
            InitializeComponent();
            dataGridView1.Rows.Add(new object[] { "Ace", 18, 1310000000 });
            dataGridView1.MouseMove += new MouseEventHandler(dataGridView1_MouseMove);
        }

private ToolTip m_ToolTip = new ToolTip();

        void dataGridView1_MouseMove(object sender, MouseEventArgs e)
        {
            System.Windows.Forms.DataGridView.HitTestInfo info = dataGridView1.HitTest(e.X, e.Y);
            if (info.ColumnIndex < 0 || info.RowIndex < 0)
                return;

            DataGridViewCell cell = dataGridView1[info.ColumnIndex, info.RowIndex];
            if (cell.Value == null)
                return;
            Point p = new Point(dataGridView1.Location.X + e.Location.X, dataGridView1.Location.Y + e.Location.Y);
            m_ToolTip.Show(cell.Value.ToString(), this, p.X, p.Y + 50);
        }


效果图
在Winform中怎么当鼠标停在DatagridView某一列上时,弹出一个悬浮框,显示行更多的信息

CPU占用太恐怖,win732位
测试,不断移动鼠标随时飙升到50%