如何永久禁用Visual Studio 2008中的区域折叠


106

有人知道如何在Visual Studio 2008中关闭代码折叠吗?我的一些同事喜欢它,但我个人始终希望看到所有代码,而永远不希望代码折叠到看不见的地方。我想要一个设置,这意味着我的Visual Studio副本不会折叠#regions或处于函数体中。


10
完全误以为是地区偏爱。我的错。
Jeff Yates

12
在我的办公室已经禁止您喜欢的地区了;)
史蒂夫·库珀

可怕的问题要问。当您成为p的专家时。您喜欢将语言折叠到文件中的语言。
Bitterblue 2014年

7
不,这是一个风格问题,而不是专业知识。我不喜欢很长的类和函数;代码折叠可帮助您管理太长的代码。长度超过150-200行的文件警告我该类已准备好进行重构。
史蒂夫·库珀

Answers:


138

编辑:我建议其他答案

转到“工具”->“选项”菜单。转到文本编辑器-> C#->高级。取消选中“打开文件时进入大纲模式”。

这将禁用所有c#代码文件的所有概述,包括区域。


11
取消选中此选项将完全禁用概述。打开文件后,是否还有其他设置可以显示扩展代码中的所有区域?
Dirk Vollmar,09年

我认为您必须使用Macros来做到这一点,但是我不知道实现它的代码。
格雷格,

1
最令人讨厌的“功能”
Christian Kuetbach 2014年

VS 2013中移动了选项位置:文本编辑器-> C#->视图,大纲语句块。
idbrii

谁能解释一下概述模式是什么?
上校恐慌

56

接受的答案将关闭所有代码折叠。如果要禁用#region折叠,但要折叠注释,循环,方法等,我编写了一个插件为您完成此操作。

让#region的吸吮减少(免费):

http://visualstudiogallery.msdn.microsoft.com/0ca60d35-1e02-43b7-bf59-ac7deb9afbca

  • 打开文件时自动扩展区域
  • (可选)防止区域折叠(但仍然能够折叠其他代码)
  • 为#region / #end区域线设置较小,较亮的背景,以使其不那么明显(也是一种选择)
  • 在C#和VB中工作(但仅在VS 2010/2012中,2008年不支持)

区域工具截图


11
为此,这似乎是一种更好,更温和的方法,而不仅仅是禁用所有概述。
Vivelin 2011年

1
大!很高兴您喜欢它。
NotDan 2011年

VS 2013版本有什么计划吗?有资料来源吗?我敢肯定有人会愿意添加2013年支持。
2014年

4
希望2017年VS
尼克画家

10

您还可以在生成的代码上禁用区域包装(例如,当您使用Visual Studio快捷方式自动实现接口时)。

替代文字http://dusda.com/files/regionssuck.png


我在“ 工具”>“选项”>“文本编辑器”>“ C#”>“高级”>“实施接口”中找到了它使用#region取消选中Surround生成的代码。再次感谢。
暗恋

9

选项/文本编辑器/ C#/高级/打开文件时进入大纲模式


8

它不是永久性的,但是击键Ctrl-M Ctrl-L扩展文件中的区域


4

另外,切换所有区域的展开/折叠的快速方法是:CTRL + M + L


2

我在相关但不重复的主题中发布了答案,可能会对此处的人有所帮助。我详细介绍了如何通过注释掉#region和#endregion指令以及用于重新激活它们的同伴来创建将停用单个装置的#region的宏。禁用#region后,Ctrl + M + O /“折叠到定义”功能完全可以实现我想要的功能。我希望这对身边的人有用。

折叠到除区域之外的定义的快捷方式


1

此选项似乎仅在C#中可用,而在C / C ++(Visual Studio 2005)中不可用。要禁用C / C ++文件中的轮廓,您需要通过将轮廓颜色更改为编辑器的背景色来技巧。为此,请转到工具>选项>环境>字体和颜色>可折叠文本>将“项目前景”颜色更改为白色(或任何背景颜色)。


这个!这就是我一直在寻找的!非常感谢这种洞察力,这是我几个月以来一直在寻求解决的烦人“功能”(如果不是几年的话)!
jerhewet 2012年

@jerhewet通过使用此解决方案,如果您错误地单击该白色区域并折叠区域,则可能会遇到麻烦,然后要展开该区域,您需要将目标对准一个不可见区域。
Czarek Tomczak 2012年

0

我通过一个环境事件为我解决了这个问题:

  1. 启动宏编辑器(alt + f11)
  2. 打开宏项目/ EnvironmentEvents
  3. 粘贴以下代码:

    Private Sub DocumentEvents_DocumentOpened(ByVal Document As EnvDTE.Document) Handles DocumentEvents.DocumentOpened
        If (Not Document Is Nothing) Then
            If (Document.FullName.ToLower().EndsWith(".cs")) Then
                Try
                    DTE.ExecuteCommand("Edit.ExpandAllOutlining")
                Catch ex As Exception
                End Try
            End If
        End If
    End Sub

    Private Sub WindowEvents_WindowActivated(ByVal GotFocus As EnvDTE.Window, ByVal LostFocus As EnvDTE.Window) Handles WindowEvents.WindowActivated
        If (Not GotFocus Is Nothing) Then
            If (Not GotFocus.Document Is Nothing) Then
                If (GotFocus.Document.FullName.ToLower().EndsWith(".cs")) Then
                    Try
                        DTE.ExecuteCommand("Edit.ExpandAllOutlining")
                    Catch ex As Exception
                    End Try
                End If
            End If
        End If
    End Sub

问候托比

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.