自动重新生成设计器文件



最近我对我们使用的许多控件进行了一些改进,例如为属性提供默认值,并将按钮设置为私有而非受保护。通过进行这种调整,您需要重新生成具有此控件的窗体或从该控件继承的控件的设计器文件。

在过去,这并不是一个真正的问题,因为我们只有20-30张表格。目前,我们已经有300多个表单,这意味着在VS2010中开放相同数量的设计师。

所以我的问题是:你知道一种自动化这个过程的方法吗,这样所有的表单都可以重新生成?

我一直在考虑一个宏,它可以查找设计器文件并打开文件(最多打开25-50个文件以确保VS不会崩溃),但我一直没能做到这一点。

我希望有人能给我一个建议!

我找到的唯一方法是打开表单设计器,添加一个控件,然后保存。这将重新生成设计器代码。接下来,删除新添加的控件,再次保存并关闭。

我通常通过双击工具箱中的按钮来添加按钮。这将使按钮位于位置0,0。

几个月前,我在一个大约有100个表单和用户控件的项目中做到了这一点。我没有在项目文件中重复出现宏,而是录制了一个临时宏,然后为每个窗体/用户控件运行该宏并检查结果。

不要将重构与重新格式化混为一谈。我经常优化和/或修改大型表单中的设计器代码。例如,我将更改控件添加到面板的顺序,以及如何将面板添加到其他面板我不会盲目地重新生成设计器代码

我也遇到了这个问题(另请参阅:强制WinForms重新生成.designer.cs文件)。

最后,我删除的大多数属性都是唯一命名的,并且我能够编写一个shell脚本来从包含属性名称的设计器文件中删除行。

注意,这实际上是删除了行,而不仅仅是留下一个空行
它需要从Bash Shell运行,如果您安装了msysgit,那么该Shell就可以了
在本例中,TextForeColor是被删除的属性。

#!/bin/bash
files=$(find . -type f -name '*.Designer.cs' -print0 | xargs -0 grep -l 'TextForeColor')
for file in $files
do
    echo $file
    sed '/TextForeColor/ d' $file >$file.tmp
    mv $file.tmp $file
done

使用表单的继承,而不是维护对300多个控件的更改。

相关内容

  • 没有找到相关文章

最新更新