c#datagridview如何在标题上对齐文本框

吉布斯

我有这个问题:我需要在..TextBox的列标题上放一个DataGridView以便找到该标题,然后开始阅读列的矩形以检索左侧位置和宽度。

Rectangle rec = dgv.GetColumnDisplayRectangle(mycolumnIndex, true);

并且工作正常,但如果网格不包含任何行,Rectangle则为0。

有任何想法吗?

谢谢

战车

无论是否有任何行或是否有选定的行,对于任何可见Rectangle从那里返回的GetColumnDisplayRectangle值总是正确的

如果Empty适合您,则您Column不可见的滚动到显示区域之外。

事件之后,您将需要设置您TextBoxControl您在此处放置的任何内容的位置同样,无论何时隐藏显示“列”。ColumnWidthChangedScroll

这是一个工作示例:

private void Form1_Load(object sender, EventArgs e)
{
    textBox1.Parent = dataGridView1;              // nest the TextBox
    placeControl(dataGridView1, textBox1, 2);     // place it over the 3rd column header
}


private void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
{
    placeControl(dataGridView1, textBox1, 2);
}

private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
{
    placeControl(dataGridView1, textBox1, 2);
}

void placeControl(DataGridView dgv, Control ctl, int index)
{
    Rectangle R = dgv.GetColumnDisplayRectangle(index, true );  // or false
    ctl.Location = R.Location;
    ctl.Size = new Size(R.Width, dgv.ColumnHeadersHeight);
}   

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章