当我在社区中搜索时,有些奇怪。人们总是说覆盖OnLoad()
方法,因为它创建了句柄等等。非预定义事件Load
但是在执行 RightToLeft 时,OnLoad()
调用两次不同于Load
仅调用一次的事件。
已编辑
DmitryG在下面的回答中很好地解释了这一点。
当我在社区中搜索时,有些奇怪。人们总是说覆盖OnLoad()
方法,因为它创建了句柄等等。非预定义事件Load
但是在执行 RightToLeft 时,OnLoad()
调用两次不同于Load
仅调用一次的事件。
已编辑
DmitryG在下面的回答中很好地解释了这一点。
在运行时,避免在运行时更改已经显示的表单的 RightToLeft 或 RightToLeftLayout 属性。
一般来说,从右到左的布局不仅仅是,flipping a screen
而且这是一个巨大的变化,它会影响控件的布局、它们的文本、图像和其他特定于文化的属性,甚至更多。因此,在这种情况下,重新创建句柄然后重新加载控件可能是预期的行为。
无论如何,我建议您在这方面联系 DevExpress 支持团队。
PS。在这种情况下更改从右到左模式最合适的方法是使用更新的文化设置重新启动您的应用程序。查看Application.Restart作为完成此任务的一种可能方式。
您可以尝试使用 onrendered(),它仅在表单完全加载时调用一次。