【发布时间】:2014-06-20 00:46:57
【问题描述】:
我在 C# winforms 中使用用户控件,我希望在加载事件之后和显示控件之后执行一些代码。如果不存在这样的事件,是否有可能制作一个?
【问题讨论】:
-
你能更好地解释你想要完成什么吗?为什么必须在“控件已显示”之后运行? (这是否意味着在创建控件之后或在用户看到控件之后?)这段代码有什么作用?如果没有更多信息,很难知道什么活动可以满足您的需求。
我在 C# winforms 中使用用户控件,我希望在加载事件之后和显示控件之后执行一些代码。如果不存在这样的事件,是否有可能制作一个?
【问题讨论】:
您可以使用来自this list. 的事件之一,OnPaint 最有可能是候选者。
表单事件:
构造器
加载
布局
已激活
油漆
结束
关闭
停用
处理
对于控件:
输入
有焦点
离开
验证
已验证
失焦
如果你找不到适合你的,这篇文章explains how to construct and fire event.
【讨论】:
这将调用你想运行一次的代码。
您也可以使用用户控制的绘画事件,但这会很昂贵。因为每次重绘控件时你的代码都会执行。
所以最好使用一个标志来决定是否运行代码
即
private bool _run =true;
private void Control_Paint(object sender, PaintEventArgs e)
{
if(!_run) return;
//call the code you need to run
_run = false;
}
【讨论】: