微软MVP Abhijit Jana
曾在个人网站Abhijit's World of .NET
上发表博文《Few Tips on Customizing Debugging Window View in Visual Studio
》,文中介绍了两个Visual Studio自定义调试窗体的小技巧。个人博客“用自己的语言写个Hello World
”版主朱祁林曾对此文进行了翻译
,现把译文转载于此,全文如下:
这篇文章讲述如何自定义你的调试窗体。这些技巧在你调试应用程序的时候是非常有用的。当你调试的时候,你可能希望简化调试窗体的信息,或者在调试窗体上除去对你不重要的不必要的信息,这篇文章将会帮助到你。
使用DebuggerBrowsable特性可以自定义调试窗体。
使用DebuggerDisplay特性可以自定义调试信息的显示。
要使用这些特性,需要引用System.Diagnostics命名空间。
技巧1、使用DebuggerBrowsable特性
你可以通过在属性上使用DebuggerBrowsable特性来自定义调试窗体。这些特性可以用任何属性、字段和索引上。
DebuggerBrowsable的构造函数需要一个DebuggerBrowsableState 参数。
DebuggerBrowsableState用来指定调试信息在窗体上显示的方式。
它有三个状态:
1、Collapsed :如果设置DebuggerBrowsableState为Collapsed 。那么调试信息折叠显示。默认为Collapsed
2、Never :调试窗体不显示调试信息
3、RootHidden :隐藏调试信息的根元素,只显示子元素信息,想了解更多,看MSDN。
下面我将通过一个例子叙述如何使用DebuggerBrowsable 和DebuggerBrowsableState。开始之前,看下面这段代码:
-
01 class Program
-
02 {
-
03 static void Main(string[] args)
-
04 {
-
05 List<
Student
>
student
=
new
List
<
Student
>
();
-
06 student.Add(new Student { Roll
=
1
,
Name
=
"Abhijit"
,
Marks
=
87
,
Addresses
=
new
Address {
Address1
=
"add1"
,
Address2
=
"add2"
} });
-
07 student.Add(new Student { Roll
=
2
,
Name
=
"Abhishek"
,
Marks
=
41
,
Addresses
=
new
Address {
Address1
=
"add3"
,
Address2
=
"add4"
} });
-
08 student.Add(new Student { Roll
=
3
,
Name
=
"Rahul"
,
Marks
=
67
,
Addresses
=
new
Address {
Address1
=
"add5"
,
Address2
=
""
} });
-
09 student.Add(new Student { Roll
=
4
,
Name
=
"Sunil"
,
Marks
=
91
,
Addresses
=
new
Address {
Address1
=
"add11"
,
Address2
=
"add122"
} });
-
10 student.Add(new Student { Roll
=
5
,
Name
=
"Atul"
,
Marks
=
71
,
Addresses
=
new
Address {
Address1
=
"add12"
,
Address2
=
"add222"
} });
-
11 student.Add(new Student { Roll
=
6
,
Name
=
"Kunal"
,
Marks
=
71
,
Addresses
=
new
Address {
Address1
=
"add12"
,
Address2
=
"add222"
} });
-
12 }
-
13 /// <
summary
>
-
14 /// Student Class
-
15 /// </
summary
>
-
16
-
17 class Student
-
18 {
-
19 public int Roll { get; set; }
-
20 public string Name { get; set; }
-
21 public int Marks { get; set; }
-
22 public Address Addresses { get; set; }
-
23 }
-
24
-
25 /// <
summary
>
-
26 /// Address of Students
-
27 /// </
summary
>
-
28 class Address
-
29 {
-
30
-
31 public string Address1 { get; set; }
-
32
-
33 public string Address2 { get; set; }
-
34 }
-
35
-
36 }
下面,先看一下不使用这些特性是什么样的效果。我在main 函数的结尾放置一个断点。你可以得到下面的调试窗体。
从上图中可以看到有6个student对象,每个对象的值都不同。Addresses是类Address的对象,它的调试信息值是隐藏的。
现在,我想要看到address的所有属性信息,隐藏Marks 属性。为了实现这样的需求,需要为给student 类中的Marks 和Addresses属性添加DebuggerBrowsable特性。
调试信息显示如下图:
技巧2、使用DebuggerDisplay特性
使用DebuggerDisplay可以定义类和字段在调试窗体中如何显示。使用 DebuggerDisplay可以改变调试窗体中显示的信息和变量,使它显示你想要的信息。
看下面没有使用DebuggerDisplay 的调试窗体。
默认情况下,每一个study对象你只得到NameSpace.ClassName这样的显示信息。我们可以使用DebuggerDisplay来自定义显示的信息。 DebuggerDisplay 构造函数需要显示名作为参数。你可以传递指定参数来显示。做如下设置:
看下效果:
使用DebuggerDisplay的时候必须注意,在{}中必须给出类的正确属性。
如我将Roll写成Rolls,如下图:
调试窗体会提示:The name 'Rolls' does not exist in the current context。如下图:
总结:本文讲述了使用DebuggerBrowsable 和DebuggerDisplay两个特性来自定义调试窗体的显示。当你调试一个非常复杂的对象时,这个是非常有用的,它可以使你的调试窗体非常简单。
原文链接:Few Tips on Customizing Debugging Window View in Visual Studio
译文链接:Visual Studio自定义调试窗体两个小技巧
分享到:
相关推荐
- `Use teechart pro in Visual Studio 2015.docx`和`.pdf`:文档文件详细介绍了在VS2015中使用TeeChart Pro的方法和技巧,包括设置、实例代码和可能遇到的问题解决策略。 5. **高级特性**: TeeChart Pro还支持...
在本文中,我们将深入探讨如何使用Microsoft Visual Studio 2008和C#编程语言创建一个模仿QQ窗体抖动效果的小程序。QQ是中国最受欢迎的即时通讯软件之一,其窗体抖动功能常用于吸引用户注意力。通过学习这个项目,...
### Visual Studio 2008 入门教程:探索高效编程技巧 #### 一、渐进式搜索:提升代码检索效率 Visual Studio 2008 提供了一种高效的搜索方式,即渐进式搜索(Incremental Search),它能够帮助开发者在代码中快速...
在实践中,可以结合Visual Studio IDE的拖放界面设计工具和代码编辑器,快速创建和测试自定义窗体。 总之,WinForm的自定义设计能力让开发者能够在C#环境中创造出独特且美观的应用程序界面。通过自定义窗体、标题栏...
### Visual Studio 2005/2008 快捷键与小技巧详解 #### 一、代码编写 在进行代码编写时,熟练掌握快捷键可以极大地提高开发效率。 - **全屏显示:** `Shift + Alt + Enter` 这个快捷键能够帮助开发者进入全屏...
【C#贪吃蛇游戏 Windows窗体】是一个适合初学者的编程项目,它利用Microsoft的Visual Studio 2019开发环境,通过Windows窗体应用程序(Windows Forms Application)实现了一个经典的游戏——贪吃蛇。这个项目的核心...
值得注意的是,描述中提到“代码修改下能用与各个版本的VS”,这意味着这个控件库可能兼容了多个版本的Visual Studio,包括但不限于VS2010、VS2012、VS2013、VS2015、VS2017和VS2019等。这种跨版本兼容性是库作者...
本书覆盖了从基本操作到高级调试、项目管理和部署的全过程,旨在帮助读者掌握Visual Studio 2010的所有关键方面。 ### 第1章:快速游览 本章为读者提供了Visual Studio 2010的入门指南,通过简短的介绍和示例,使...
"Visual C# 窗体技巧代码"这个主题涵盖了如何利用C#进行高效且用户友好的窗体应用开发。窗体是构建图形用户界面(GUI)的基本元素,它们提供了与用户交互的平台。以下是一些关于Visual C#窗体开发的关键知识点和技巧...
获取窗体尺寸的两个主要属性是`Width`和`Height`。它们分别代表了窗体的水平和垂直方向上的像素尺寸。例如,你可以通过以下代码片段获取窗体的当前尺寸: ```csharp Form myForm = new Form(); int width = myForm....
1. **窗体设计**:C#中的窗体可以通过Visual Studio的拖放功能来设计,包含各种控件如按钮、文本框、菜单等。窗体的属性(如大小、位置、背景色等)可以在属性窗口中调整。 2. **事件处理**:C#窗体中的事件处理是...
在本文中,我们将深入探讨"C# Winform非客户区自定义"这一主题,这是一个源码压缩包,允许开发者像Visual Studio那样在窗体的非客户区添加控件,并且窗体支持移动和大小调节。这一特性极大地扩展了Windows Forms应用...
在本文中,我们将深入探讨如何使用C#编程语言来创建自定义的屏幕保护程序,即屏保。屏保是计算机用户界面的一个...通过实践这个过程,开发者不仅可以提高编程技巧,还能创造出个性化的屏幕保护,为用户带来独特的体验。
通过合理设置这两个属性,可以实现控件随窗体大小变化而自适应调整位置和大小。 3. **自定义代码实现**:在某些复杂情况下,可能需要编写自定义代码来处理窗体和控件的大小调整。例如,可以通过重写OnResize事件,...
《Visual Studio 6.0应用系列:Visual Basic 6.0中文版实用》是一套针对初学者和进阶用户的专业VB6学习资源。Visual Basic 6.0是微软公司发布的一款经典编程环境,用于开发Windows应用程序。这个压缩包包含的内容...
本课程聚焦于".NET Windows编程系列课程(4):VisualStudio2005常用控件实战(中)",主要讲解在Windows Forms应用程序中如何有效利用各种控件进行界面设计和功能实现。 1. **Windows Forms控件基础** - 控件是构建...
窗体可以通过代码或设计视图创建,设计视图是Visual Studio提供的一个可视化工具,允许开发者通过拖放方式布局控件。 在Visual Studio中创建C#窗体原文件的过程相对简单。首先,启动新的C# Windows Forms应用项目,...
C#提供了丰富的字符串方法,如`string Concat(string str1, string str2)`用于连接两个字符串,`string.Replace(char oldChar, char newChar)`替换字符串中的字符等。 5. **对联生成**:对联通常包含上下联和横批,...
- **Dock和Anchor属性**:通过设置这两个属性,可以使控件随窗体大小变化而自动调整位置和大小。 4. **窗体状态和行为** - **窗体样式**:如最小化、最大化、关闭按钮,可通过FormBorderStyle属性设置。 - **...