gpt4 book ai didi

c# - 递归触发 SizeChanged 事件

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

我的一个窗口中有一个 SizeChanged 事件。其中一个用户控件 Width 的行为很有趣,因此我决定在 SizeChanged 事件中静态设置窗口的宽度。问题是,当我在大小更改事件中设置窗口大小时,它会触发另一个大小更改事件!我希望用户能够调整窗口大小,然后只触发一次事件。我试过了:

e.Handled = true;

以及在窗口构造函数中添加事件处理程序,并在大小更改事件中删除它。 (这使得它只能触发一次并且在窗口的生命周期内不会再次触发)。有任何想法吗?

最佳答案

你应该使用一个私有(private) bool 并在大小改变时改变它的值

bool _sizeChanged=false;
void handleResize(Object sender, EventArgs e)
{
if (_sizeChanged==false)
{
// do stuff
}
_sizeChanged=true;
}

但这还不够,因为您应该在其他地方再次更改它的值。如果您不更改其值(例如在其他地方更改为 false),它将永远不会再次通过“if”条件。所以问题是,您应该在哪里更改它的值。

我认为您可以更改 MouseButtonUp 事件的值,因为调整大小是通过鼠标完成的。

关于c# - 递归触发 SizeChanged 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13608799/

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