【问题标题】:I'm not getting any OnPaint events for my panels我的面板没有收到任何 OnPaint 事件
【发布时间】:2011-04-29 21:03:27
【问题描述】:

我有一个面板,其中包含一个面板,该面板包含一个包含多个标签的面板。 我得到了外部面板和标签的 OnPaint 事件,但中间面板没有。 怎么回事??

更新:当 ClipRectangle 为 Size(0,0) 时,我的跟踪是错误的,这发生在完全覆盖的面板上。

【问题讨论】:

  • 您确定您没有从最内层的面板(而不是最外层)获得 OnPaint 事件吗?

标签: .net winforms visual-studio-2010 c++-cli


【解决方案1】:

只要控件的一部分需要重新绘制,就会引发绘制事件。被另一个(不透明)控件覆盖的控件区域被该控件遮盖,因此逻辑上不需要重新绘制。因此,如果您的面板完全被它们的子控件所覆盖,它们可能永远不会引发 Paint 事件。

【讨论】:

  • 不幸的是,并非所有人都这样。我对顶部面板感兴趣,因为标签首先出现的背景部分显示为黑色,我不喜欢这样。
  • 隐藏的面板实际上确实得到了一个 OnPaint 事件,其中 ClipRectangle 的宽度和高度为零。我的追踪出错了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 1970-01-01
  • 2014-01-29
  • 1970-01-01
  • 2020-10-11
相关资源
最近更新 更多