是否有任何行與否或選擇行或不行,Rectangle
返回從GetColumnDisplayRectangle
始終是任何可見列正確。
如果Empty
適合你,那麼你的Column
要麼是無形或滾動外的顯示區域。
您需要設置您的TextBox
或其他Control
的位置,在ColumnWidthChanged
和Scroll
事件之後。此外,無論何時您隱藏或顯示列。
這裏是一個工作示例:
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);
}
來源
2015-11-11 11:23:22
TaW
我不能重現,矩形總是重新調諧接頭,不管療法是否是任何行或不的位置和寬度。 – TaW
謝謝@TaW,但對於我來說,在Visual Studio 2013中,如果沒有行被選中,返回一個矩形0,0,0,0,因爲矩形是列區域,在標題下面 – ghiboz