C# 调整DataGridView列大小时显示工具提示
当用户在WinForms DataGridView中调整列的大小时,我尝试对Excel执行类似的操作,在WinForms DataGridView中,工具提示显示列的当前大小C# 调整DataGridView列大小时显示工具提示,c#,winforms,datagridview,tooltip,C#,Winforms,Datagridview,Tooltip,当用户在WinForms DataGridView中调整列的大小时,我尝试对Excel执行类似的操作,在WinForms DataGridView中,工具提示显示列的当前大小 有什么简单的方法吗?我希望这个链接能帮助你。。。。关于如何在调整datagridview列的大小时显示工具提示 或者你可以试试这个 void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) {
有什么简单的方法吗?我希望这个链接能帮助你。。。。关于如何在调整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;
}
谢谢,用这个来构建我的解决方案。比我想象的要复杂,但只是工作而已。