Visual Studio窗口显示方法列表


126

在Visual Studio中,是否有一个窗口显示活动类中的方法列表?像解决方案资源管理器这样的小窗口会很棒。在Eclipse中,有一个。


2
对于将来搜索的人-CodeMaid提供了这样的列表以及更多内容!codemaid.net
BKSpurgeon

Answers:


127

在代码窗口上方有一个下拉菜单:

替代文字

它称为导航栏,包含三个下拉菜单:第一个下拉菜单包含project,第二个类型第三个成员(方法)。

您可以使用快捷键Ctrl+ F2(将焦点移至项目下拉菜单)并按Tab两次(将焦点移至第三个下拉菜单)对其进行聚焦,向下箭头将扩展列表。

全尺寸图片


16
您知道是否有打开此快捷方式的快捷方式吗?为此使用鼠标实在令人讨厌。
Mariusz Pawelski

@ChrisF似乎在vs2012中看不到该窗口。如何启用?
ysrb

@ysrb-不知道。我仍然在这里VS2010。鉴于这个问题是关于VS2008的,我建议您提出一个新问题(链接回该问题以表明它不是重复的)。
克里斯·

10
还寻找打开它的快捷方式和/或永久打开的窗口或框架。
Xonatron


43

我发现如第一个答案(@ChrisF)所示如何打开下拉菜单:

转到选项->文本编辑器->(您的语言)

然后在显示部分中勾选“导航栏”。


你救了我的天狗!
伊曼纽尔·贾尼科

我总是想念VB.NET的导航栏。这样就可以了。非常感谢。
huha

您将在菜单中的“其他”下找到“选项”。
ohgodnotanotherone

工具(选项卡)>选项>文本编辑器>(您的语言)
SandstormNick

谢谢mark.oliver.asp.newbie。我刚刚从2015年升级到2019年,并试图在所有选项菜单中找到该栏。
ExcelsiorTechSolutions

30

从Visual Studio 2012开始,您可以通过展开与文件相对应的节点在解决方案资源管理器中查看大纲(字段和方法)。


2
我比下拉菜单更喜欢此选项,下拉菜单按字母顺序烦人地排序(我认为)。
dbernard 2013年

请注意,如果您有一个,partial class所有成员都将列在该节点下,而不仅仅是那些仅在该文件中的成员。

24

导航栏的快捷方式是Ctrl+ F2。首先将您带到类型下拉列表。按Tab键转到方法下拉列表,然后输入要转到该方法的方法。


22

ReSharper具有“ ReSharper | Windows | “文件结构”窗口,用于可视化当前代码文件结构。


确实非常有用,但是该窗口是否有键盘快捷键?
尼古拉斯·

“ Alt +”是该键盘的快捷键。
Hallmanac

19

Resharper具有“文件结构”窗口,与“ Eclipse大纲”视图非常相似。最初的回答是:

Visual Studio 2012:类中所有方法的列表

Resharper帮助:http : //www.jetbrains.com/resharper/webhelp/Reference__Windows__File_Structure_Window.html

“文件结构”窗口的屏幕截图


CTRL-F12调出Resharper中的“转到成员导航”窗口。它列出了该类中的所有方法,并为您提供了搜索选项。
WoZoNe

1
CTRL-F11显示上面的Resharper窗口。这正是我想要的。
gattsbr

11

尽管这是一个老问题,也许这个答案对您有所帮助。

您可以从此处下载codemaid扩展名:codemaid网站

它具有很多功能,您可以在他们的网站中找到。

与这个问题有关的是代码挖掘

从树视图层次结构中可视化并浏览C#和C ++文件的内容。在不同的排序方法之间快速切换,以获得更好的概览。拖放以重新组织代码。请参阅McCabe复杂性评分和信息丰富的工具提示。

换句话说,它使您能够查看方法和属性,也可以通过拖放对其进行重新组织。这是我的日常使用扩展


CodeMaid重新实现了大多数内置的VS功能,对于看到重复的菜单项会污染IDE的情况,这是一个过大的要求,令人不快。
Ivan G.

我不这么认为,一些有用的功能一样ctrl+m+zctrl+m+spacectrl+m+fsort linesclean whole solutioncollapse all in solution explorerarrange methods with drag and dropmethod and properties tree是工具,你可以在样reshraper一些工具只能找到。
莫·赫拉德2013年

1
我并不是说这是违法的,但是大多数“代码清理”过程大多引入了我不关心的编码风格的圣战。产品第一。我什至不在乎一个文件中是否有空格和制表符,仅是生产力。
伊万·G。

代码大纲(锹)确实很有帮助。如果它与文本编辑器中当前活动/选定的成员保持同步,那就太好了。
Markus L

@MarkusL,您可以在此处创建一个新问题:github.com/codecadwallader/codemaid/labels/enhancement
Mo Hrad

8

在Eclipse中没有直接等效于Outline View的视图。我找到的最接近的东西是“类视图”,其中列出了所有类及其成员/方法。顶部有一个搜索框,以缩小选择范围。


自从C ++上的VS 2010以来,我更喜欢这个答案,因为隐藏我的代码的下拉列表很烦人。显示类视图的另一个更方便的快捷方式是Ctrl + Shift + C
杰夫T.

5

在Visual Studio 2015中,查看>其他Windows>资源视图。键盘快捷键是Ctrl+ Shift+ E。我发现这比“类视图”更干净。使用Class View Windows,您可以根据访问修饰符(私有/受保护/公共)等过滤方法/属性。


2
尽管它确实列出了该类的字段和方法,但它要求您首先导航到所需的类。OP要求的是当前活动班级。 即当前在代码视图中打开的那个。如果我有一个3000行长的类,其中包含我目前打开的78个方法和63个字段,并且希望快速导航到一个已知的方法名称,但是不记得它的位置,那么必须先导航名称空间并不比Ctrl-F好。
Draco18s不再信任SE

1
谢谢,这正是我想要的!这是一个非常有用的工具。
user1529413

4

在文本编辑器的顶部,应该有一个下拉列表,列出了当前类型中的所有方法,属性等。并且它是可单击的(即使这些成员在其他文件中定义-在这种情况下,它们也会变灰,但您仍然可以使用它们进行导航)。

另外,如果您使用类资源管理器(Ctrl+ Alt+ C)来导航项目,则将获得所有类型的完整概述。但是,在“工具/选项”中似乎没有设置可让您跟踪该窗口中的活动类型(用于解决方案资源管理器)-也许是宏或插件是按顺序排列的...



1

您是指类视图窗口(“视图”->“类视图”,还是Ctrl+ WC)?

您还具有智能弹出窗口


我认为这两个都不有用。在“班级”视图中,您必须先找到班级。要显示智能感知,您必须在某个地方写一个类名,甚至实例化它。其他答案包含更快,更易于使用的解决方案。
David FerenczyRogožan2015年

1

使用Visual Studio 2010

您选择工具->设置->专家设置

在左下角,您将在选项卡“解决方案资源管理器”旁边看到“类视图”选项卡

在“类视图”布局的顶部区域,您将看到类名称,枚举,结构等的列表。在“类视图”布局的底部区域,您将看到这些类,枚举或其他成员的列表结构


正如sagie所回答的那样,Dawid Ferenczy已经评论说:“在“类”视图中,您必须首先找到您的类。要显示智能感知,您必须在某个地方编写一个类名,甚至实例化它。其他答案包含更快,更易于使用的解决方案”。
Draco18s不再信任SE

1

一个很好的干净方法是使用View.SynchronizeClassView。

在此处输入图片说明

此外,您可以:

  • 固定您的班级查看窗口
  • 折叠顶部窗格(列出所有类)

现在,感觉就像Visual Assist的功能“当前文件中的列出方法”(也列出了成员btw)一样。


我在哪里找到的View.SynchronizeClassView?我只能在Visual Studio 2017中找到“常规”类视图
。– user11909

这是您在“命令窗口”中输入的命令。不幸的是,您无法将其设置为自动同步ClassView,而每次都必须手动进行。您可以分配一个快捷方式,但这仍然是不必要的麻烦。
mKay

0

Microsoft不想实现此有用的工具,但是如果有机会获得Visual Assist,可以在VAssistX>工具> VA Outline中使用它。插件不是免费的。


0

我一直都在使用USysWare DPack。它非常小且不具干扰性,因此,如果您想要的只是一个快速快捷方式窗口,其中显示了您正在使用的当前文件的方法列表,则它就提供了此功能。好消息是,作者在保持十多年的历史之后仍然保持活跃,只是为了继续为最新的VS版本提供相同的功能。

https://marketplace.visualstudio.com/items?itemName=SergeyM.DPack-16348

安装后,只需使用它Alt + M即可显示方法列表窗口。我宁愿显示所有成员,但取决于您。


-1

在VS 2012中,只需转到“视图”>“类视图” ...即可在主选项卡区域中获得“类视图GUI”。现在,将其拖到侧面扩展坞上,您将拥有与Eclipse完全相同的布局。

-e


这是不同的。它不显示当前类的成员(在编辑器中打开的类)。您必须手动找到它。最好使用解决方案资源管理器(扩展文件和其下的类),因为您可以将其与当前文件同步。
David FerenczyRogožan2015年

-1

我最好的方法是,在“视图”->“代码定义窗口”下打开“代码定义窗口”或按Ctrl+ WD

然后我将其浮动,并在单独的窗口中定义了方法。

问候


它如何回答OP的问题?他根本不需要定义,只需要列出班级成员即可。要查看定义,通常只需双击此类列表中的方法即可。
David FerenczyRogožan2015年

-4

grep -i“ sub” filename.vb> Methods.txt grep -i“ function” filename.vb >> Methods.txt


请解释这如何提供答案的问题。
AdrianHHH 2015年

它回答了这个问题,因为该解决方案提供了vb类中所有子功能的列表。
John Reichert 2015年

他不想要类中的方法列表。他需要在Visual Studio中有一个窗口,其中包含活动类中的方法列表。他还在Eclipse中引用了相同的内容。很明显,您的答案是完全不同的。
David FerenczyRogožan2015年
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.