gpt4 book ai didi

c# - 如何在用户控件完全可见后执行方法

转载 作者:太空宇宙 更新时间:2023-11-03 22:26:27 24 4
gpt4 key购买 nike

我有一个用户控件,其中包含一个动态加载到表单上的文本框。在表单启动时,我启动用户控件并将其可见性标记设置为“false”。我想在 usercontrol 变得可见时自动触发一个方法,因为这个方法将一些输出写入文本框,这个方法应该只在 usercontrol 和它的所有继承控件对用户可见之后才开始执行。

我认为 paintEventHandler 应该是在例如控件的可见性更改后重新绘制窗体及其继承控件时触发的最后一个事件。

所以订阅 paintEventHandler 应该在表单完全重绘后触发我订阅的方法,但显然不是,我的方法在我的文本框仍然隐藏时执行,只有在方法完成执行后才可见。

对此有什么想法吗?

private void processControl_SetActive(object sender, CancelEventArgs e)
{

this.BeginInvoke((MethodInvoker)delegate
{
this.Paint += new PaintEventHandler(processControl_Paint);
});

}

void processControl_Paint(object sender, PaintEventArgs e)
{
//Should only be called when everything is fully loaded and visible on the form.
//Application.DoEvents() ->probably bad idea??
AddStuffToTextBox();
}

最佳答案

您可以尝试将文本框初始化代码添加到用户控件的 Enter 事件的处理程序中,该事件在控件获得输入焦点时触发,然后在激活控件的代码中确保调用 Focus 方法控制将其设置为事件状态。您可能希望保留一个标志,以便仅在控件第一次出现输入焦点时完成。

关于c# - 如何在用户控件完全可见后执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com