.net C#WinForms,删除未使用的控件

.net C#WinForms,删除未使用的控件,.net,winforms,visual-studio-2008,c#-3.0,.net,Winforms,Visual Studio 2008,C# 3.0,我正在做一个C#项目(.NET3.5,VisualStudio2008),我想问大家一个简单的问题: 是否可以删除从未使用过的控件 我的意思是,是否可以删除已添加到表单中但未在代码库中的任何位置(设计器之外)引用的控件 我看到的WinForms有几十个控件,它们的通用名称(“textBox1,button 4,等等”)不是代码库使用的(甚至用户看不到) 大多数表单在控件之上都有控件(这不是我的决定),并且有很多面板和拆分器的分层。这导致了这样一种情况:视图中隐藏了一些控件,这些控件从未被使用或附

我正在做一个C#项目(.NET3.5,VisualStudio2008),我想问大家一个简单的问题:

是否可以删除从未使用过的控件

我的意思是,是否可以删除已添加到表单中但未在代码库中的任何位置(设计器之外)引用的控件

我看到的WinForms有几十个控件,它们的通用名称(“textBox1,button 4,等等”)不是代码库使用的(甚至用户看不到)

大多数表单在控件之上都有控件(这不是我的决定),并且有很多面板和拆分器的分层。这导致了这样一种情况:视图中隐藏了一些控件,这些控件从未被使用或附加到任何事件处理程序

我担心这些额外的控件会留下很大的内存占用,或者导致性能问题——我已经看到表单在使用10分钟后变得滞后

显然,我不想跳转到设计器文件并开始删除对不必要控件的引用。代码库已签入源代码管理,但自从它首次签入以来,已经有很多次提交

我在考虑通过以下模式进行迭代:

  • 裁板
  • 将其粘贴到新(空)项目中
  • 删除我知道主项目中未使用的任何控件(任何具有通用名称的控件)
  • 将面板粘贴回主项目并重新生成(以检查错误)
有没有(可能)更快的方法?有没有更安全的方法?有没有任何第三方工具可以在代码库上运行(可能类似于分析器?),可以告诉我应该删除哪些控件


谢谢,这是一个糟糕的做法。在项目中保留未使用的控制权

从技术角度看,页面加载/母版页加载时会产生问题。。。 它向你展示了例外


注意:永远不要在母版页中保留注释代码…如果服务器不理解已发布的代码。它会显示您的页面,但我们无法执行它。

您可能不想删除所有未针对其进行编码的控件。然后,您将删除有助于UI但从未从设计器外部引用的面板和标签

我在这里看到两个不同的关注点

一个是你有一个“laggy”表单。为此,只需运行一个探查器,或者运行一个内存探查器来查找问题的根源。然后修复该问题。完成了,用户满意

另一个是,如果有额外的控件以任何方式对用户体验没有贡献,例如它们总是隐藏的。这不会给用户带来任何问题,但意味着使用更多控件来维护代码可能会更困难。我建议手动检查并识别这些控件,然后删除它们。任何自动工具我会弄错的


第一个问题可能是更高的优先级。

不需要单独的项目。在Visual Studio的帮助下,在同一个项目中执行此操作,ReSharper&CTRL+SHIFT+BBeware可以删除面板和拆分器,因为它们可能控制布局,即使它们从未直接交互过。性能落后可能不是由于额外的控件,例如特别是如果它是随时间构建的。“文档大纲”视图(Ctrl+Alt+T)如果与设计器视图一起使用,会很有帮助,因为您可以选择控件并在设计器上查看它们的选中状态。它会显示树层次结构中的每个控件是否“隐藏””“或者不是。它还可以方便地更改控件的Z顺序,以应对极少数情况下的重要问题。@Tergiver感谢文档大纲提示(尽管自2006年以来我一直在使用Visual Studio,但我仍然没有使用大多数函数)