【发布时间】:2009-07-16 18:36:15
【问题描述】:
我必须启用 winforms 应用程序中的所有文本来替换;它是一个旧应用程序,正在“维护”中。该应用程序是在 .NET v1.1 中编写的,其后续部分是在 .NET v2 中编写的,因此它不使用任何布局控件。
我遇到的问题是,当字符串比默认字符串长时,我需要让 UI 应对。但是,由于风险,我不希望对代码进行大量更改。
在过去,我发现简单的更改,例如向窗体添加面板并将当前控件拖到窗体上会丢失事件连接等。由于 WinForms 设计器移动代码的方式,它非常很难使用 DIFF 来发现此类问题。所以希望尽可能避免对控制树进行任何更改。
所以我正在寻找某种布局管理器,我可以将其添加到表单中而无需更改其余代码(或控制树)——任何理想?
我应该考虑其他任何选项吗?
(替换字符串的人不具备自己重新排列控件的技能;这也是维护的噩梦,因为标签可能需要为每个客户提供不同的值)
(回答说“如果我是你,我不会从这里开始”)
有人知道控制树外部的布局管理器吗?例如,我可以将它指向一个表单,它会接管控件的布局,而不必使所有控件成为布局管理器的子级。
【问题讨论】:
-
“过去我发现简单的更改,例如向表单添加面板并将当前控件拖到它上面已经失去了事件连接等” - 你确定你从一个父母到另一个父母还是你剪切/粘贴?拖动不会破坏事件处理程序订阅,但剪切/粘贴肯定会导致这种情况。
标签: winforms layout internationalization