10

我知道有UserControl.Load,它发生在控件第一次可见之前。而且我知道有UserControl.HandleCreated,当为控件创建句柄时会发生这种情况。

但我正在寻找第一次实际显示控件时发生的事件。

原因:

我正在处理一个DataGridView在显示控件之前放入一堆数据的数据。如果没有绘制控件,我无法为行 ( BackColor) 着色(命令根本不起作用)。仅在首次绘制控件后,对行着色的命令才有效。所以我需要捕捉那个事件并在那个时候给行着色。

dataGridView1.Rows[index].DefaultCellStyle.BackColor = Color.Red;

上一行在显示控件时有效,但在未显示控件时无效。

4

1 回答 1

8

您可以使用该VisibleChanged事件。

private void UserControl_VisibleChanged(object sender, EventArgs e)
{
    if (this.Visible) { ... }
    else { ... }
}
于 2013-05-15T13:25:21.977 回答