[英]UserControl with Child Controls passed into a Repeater within the UserControl
[英]UserControl Invalidate() method. How to properly invalidate the child controls in a UserControl
要使UserControl
使所有嵌套控件Invalidate
您需要調用Invalidate(invalidateChildren)
的特殊重載:
yourUserControl.Invalidate(true);
使控件的特定區域無效,並導致將繪制消息發送到控件。 (可選)使分配給該控件的子控件無效。
請注意以下幾點:
備注
調用Invalidate方法不會強制執行同步繪制。 要強制執行同步繪制,請在調用Invalidate方法之后調用Update方法。 當不帶任何參數調用此方法時,整個客戶區將添加到更新區域。
更新資料
如果要從UI線程以外的其他線程Invoke
此Invoke
,則需要使用Invoke
,可能是這樣的:
public delegate void InvalidateUC();
public InvalidateUC myInvalidateDelegate;
public void InvalidateMethod()
{
yourUserControl1.Invalidate(true);
}
現在,做完之后
myInvalidateDelegate = new InvalidateUC(InvalidateMethod);
您可以從其他線程調用
yourForm.yourUserControl1.Invoke(myInvalidateDelegate);
請注意,如果您不確定該調用是否確實來自非ui線程,則可以(並且應該)添加條件
if (yourForm.yourUserControl1.InvokeRequired)..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.