我知道有UserControl.Load
,这是在控件第一次可见之前发生的。我知道有UserControl.HandleCreated
,这是在为控件创建句柄时发生的。
但我正在寻找第一次实际显示控件时发生的事件。
原因:
我正在处理一个DataGridView
,它在显示控件之前有一堆数据放入其中。如果没有绘制控件,我无法为行(BackColor
)着色(命令根本不起作用)。只有在第一次绘制控件时,才会使用颜色行的命令。因此,我需要捕获该事件并在该点着色行。
dataGridView1.Rows[index].DefaultCellStyle.BackColor = Color.Red;
如果显示控件但上面的行无效,则不显示控件。
答案 0 :(得分:7)
您可以使用VisibleChanged
事件。
private void UserControl_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible) { ... }
else { ... }
}