109

有人知道如何在 Visual Studio 2008 中关闭代码折叠功能吗?我的一些同事喜欢它,但我个人总是希望看到所有的代码,并且从不希望代码折叠在视线之外。我想要一个意味着我的 Visual Studio 副本永远不会折叠#regions或函数体的设置。

4

9 回答 9

141

编辑:我推荐这个其他答案

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

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

于 2008-09-22T15:58:01.767 回答
57

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

让#regions 吸得更少(免费):

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

  • 打开文件时自动扩展区域
  • 可选地防止区域被折叠(但仍然能够折叠其他代码)
  • 给#region / #end 区域线一个更小、更亮的背景,这样它们就不那么明显了(也是一个选项)
  • 在 C# 和 VB 中工作(但仅在 VS 2010/2012 中,2008 不支持)

区域工具截图

于 2011-06-02T00:38:39.600 回答
10

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

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

于 2009-09-16T16:37:52.607 回答
9

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

于 2008-09-22T15:57:00.583 回答
8

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

于 2008-09-22T15:57:01.597 回答
4

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

于 2008-09-22T16:00:25.177 回答
2

我已经在一个相关但不重复的线程中发布了一个答案,这可能会帮助这里的一些人。我详细介绍了如何通过注释掉#region 和#endregion 指令来创建将停用单个单元的#regions 的宏,以及重新激活它们的同伴。停用#regions 后,Ctrl+M+O / Collapse to Definitions 功能完全符合我的要求。我希望这对我以外的人有用。

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

于 2009-11-26T20:58:00.737 回答
1

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

于 2011-02-18T18:28:34.020 回答
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

问候托比

于 2013-06-05T15:20:08.920 回答