为什么 OnLoad() 在 Do RightToLeft 时调用两次但预定义的 Load 事件执行一次?

Why OnLoad() called twice when But predefined Load event executes once When Do RightToLeft?

当我在社区中搜索时,出现了一些非常奇怪的事情。人们总是说重写 OnLoad() 方法,因为它创建了句柄等等。不是预定义事件 Load

但是当执行 RightToLeft 时,OnLoad() 调用了两次,不像 Load 事件只调用了一次。



已编辑

DmitryG 在下面的回答中解释得很好。

您可以尝试使用 onrendered(),它只会在表单完全加载时调用一次。

来自How to: Enable RTL Mode in a Right-to-Left Culture Application

At runtime, avoid changing the RightToLeft or RightToLeftLayout property at runtime for forms that are already displayed.

一般来说,从右到左的布局不仅仅是 flipping a screen,但这是一个巨大的变化,会影响控件的布局、它们的文本、图像和其他特定于文化的属性,甚至更多.因此,处理重新创建然后控件重新加载可能是这种情况下的预期行为

无论如何,我建议你contact the DevExpress Support Team这方面。

PS。在这种情况下更改从右到左模式的最合适方法是重新启动您的应用程序并更新文化设置。查看 Application.Restart 作为完成此任务的可能方法。

How to: Enable RTL Mode for Form's Controls, Strings and Images in a Multiple Culture Application