瑄他爹 2024-01-04 21:21 采纳率: 0%
浏览 6

.net 改变控件parent 引发leave事件

.net 改变控件parent 竟然引发控件leave事件,致使parent变为Nothing

窗口Form1上 包括 容器1 和 按钮1

开始
按钮1.parent 是 容器1

1--从 sub1 中调用

sub1
    按钮1.parent = Form1
    位置1 = get1(按钮1.parent.坐标)
end sub

这时没问题
2-- 再次调用 sub1


    按钮1.parent = 容器1
    位置1 = get1(按钮1.parent.坐标)

这时 系统竟然激发了 Leave事件

因为我在 Leave事件中 调用了 sub1


sub Leave
  sub1
end leave

所以 重复调用了 sub1

而这时 按钮1.parent 竟然变成 nothing
我猜测 是 因为 容器1 小于 form1 引起的,因为 容器1 从变更到 form1 时,没有出现Leave调用的问题

不知各位朋友有没有碰到, 能不能给 解释一下.

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-05 08:13
    关注

    【以下回答由 GPT 生成】

    在.NET中,当改变控件的parent时,不会触发leave事件导致parent变成nothing。leave事件只会在控件失去焦点时触发,而改变控件的parent并不会使控件失去焦点。您提到的情况可能是由其他原因引起的。

    可能的原因之一是在leave事件处理程序中,您可能会调用其他的操作或方法,这些操作或方法可能会导致控件的parent变为nothing。请检查leave事件处理程序的代码,看看是否有这样的操作。

    另一个可能的原因是在sub1方法中,您可能会调用了其他的操作或方法,这些操作或方法可能会导致控件的parent变为nothing。请检查sub1方法的代码,看看是否有这样的操作。

    如果您想要进一步排查问题,可以在leave事件处理程序和sub1方法中逐步添加调试语句,打印相关变量值、调用栈等信息,以便确定导致parent变为nothing的具体操作或方法。

    如果以上解释不符合您的情况,可能是由其他因素引起的。请提供更多的代码和具体环境信息,以便更好地分析和解决问题。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 1月4日