C# 调整DataGridView列大小时显示工具提示

C# 调整DataGridView列大小时显示工具提示,c#,winforms,datagridview,tooltip,C#,Winforms,Datagridview,Tooltip,当用户在WinForms DataGridView中调整列的大小时,我尝试对Excel执行类似的操作,在WinForms DataGridView中,工具提示显示列的当前大小 有什么简单的方法吗?我希望这个链接能帮助你。。。。关于如何在调整datagridview列的大小时显示工具提示 或者你可以试试这个 void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) {

当用户在WinForms DataGridView中调整列的大小时,我尝试对Excel执行类似的操作,在WinForms DataGridView中,工具提示显示列的当前大小


有什么简单的方法吗?

我希望这个链接能帮助你。。。。关于如何在调整datagridview列的大小时显示工具提示

或者你可以试试这个

 void dataGridView1_ColumnWidthChanged(object sender,  DataGridViewColumnEventArgs e)
   {
       toolTip1.SetToolTip(dataGridView1.Columns[i].Width.ToString());
    }

我当前的解决方案基于@errorstacks tips

        this.dgvDeskTrades.MouseDown += dgvDeskTrades_MouseDown;
        this.dgvDeskTrades.MouseMove += dgvDeskTrades_MouseMove;
        this.dgvDeskTrades.MouseUp += dgvDeskTrades_MouseUp;

    private int colResizing = -1;
    private int origWidth;
    private int mouseX;

    private void dgvDeskTrades_MouseDown(object sender, MouseEventArgs e)
    {
        var hit = this.dgvDeskTrades.HitTest(e.X, e.Y);
        if (hit.Type != DataGridViewHitTestType.ColumnHeader) return;
        if (Cursor.Current != Cursors.SizeWE) return;

        this.colResizing = hit.ColumnIndex;
        this.origWidth = this.dgvDeskTrades.Columns[this.colResizing].Width;
        this.mouseX = e.X;
    }

    private void dgvDeskTrades_MouseMove(object sender, MouseEventArgs e)
    {
        if (this.colResizing == -1) return;
        this.dgvDeskTrades.Columns[this.colResizing].Width = Math.Max(0, this.origWidth + (e.X - this.mouseX));
        this.toolTip.Show("Width: " + this.dgvDeskTrades.Columns[this.colResizing].Width, this, e.X, e.Y);
    }

    private void dgvDeskTrades_MouseUp(object sender, MouseEventArgs e)
    {
        if (this.colResizing == -1) return;
        this.toolTip.Hide(this);
        this.colResizing = -1;
    }

谢谢,用这个来构建我的解决方案。比我想象的要复杂,但只是工作而已。