我有一个datagridview和一个面板。滚动数据网格视图时滚动面板。 该面板包含与datagridview中列数相同数量的文本框。 我的问题是当我调整datagridview列的大小时,我也调整了它上面的文本框的大小。这工作正常,但面板水平滚动到原点。 如何防止面板水平滚动重置为原点?
private void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
{
try
{
TextBox txt;
int x = 40;
panel1.AutoScrollPosition = new Point(dataGridView1.HorizontalScrollingOffset,0);
panel1.HorizontalScroll.Value = dataGridView1.HorizontalScrollingOffset;
IOrderedEnumerable<DataGridViewColumn> coll= from DataGridViewColumn doc in dataGridView1.Columns orderby doc.DisplayIndex select doc;
foreach (DataGridViewColumn dc in coll)
{
if (dc.Visible)
{
txt = (TextBox)panel1.Controls["txt" + dc.Name];
txt.Width = dc.Width - 5;
txt.Location = new Point(x, dataGridView1.Location.Y - 25);
x += txt.Width + 5;
}
}
}
catch { }
}