[英]Invalidating all controls in a winform causes infinite calls of OnPaint method
[英]Winform Customer ListBox How to Suspend OnPaint method
我有一个自定义列表框,它继承了WinForms ListBox
类。
public class UserListBox : ListBox
{
protected override void OnPaint(PaintEventArgs e)
{
// Omitted for brevity...
}
}
我在此ListBox
上添加了一个筛选器(就像GridView
控件的DefaultView一样),但是当我更改项目时,无论如何都会调用OnPaint方法。 我无法调用其他方法,例如remove。
我测试了SendMessage WM_SETREDRAW来暂停更新,但是这不起作用。
如何暂停对OnPaint
方法的调用?
原版的
我不确定您为什么会真正想这样做,但是有可能。 使用WinForms
您实际上可以P / Invoke进行一些本机调用,并尝试管理Windows消息传递循环之类的事情。 老实说,我建议您尝试避免这样做。 您要完成什么?
如何挂起Control.OnPaint方法?
点击此链接可以查看示例。
更新资料
根据MSDN文档,您做得正确。 您能否提供更多源代码,以便让我再看看?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.