演练:调试 Windows 窗体
Windows 窗体是最常见的托管应用程序之一。 Windows 窗体创建标准的 Windows 应用程序。 你可以完成此演练使用 Visual Basic 中, C#,或 c + +。
首先,您必须关闭任何打开的解决方案。
准备此次演练
- 如果已打开某个解决方案,请将其关闭。 (在文件菜单中,选择关闭解决方案。)
创建新的 Windows 窗体
接下来,您将创建一个新的 Windows 窗体。
若要创建用于本演练中的 Windows 窗体
上文件菜单中,选择新建然后单击项目。
此时将出现“新建项目”对话框。
在项目类型窗格中,打开Visual Basic, Visual C# ,或Visual c + + 节点,然后
Visual Basic 或 Visual C#,选择Windows 桌面 > Windows 窗体应用。
对于 Visual c + + 中,选择Windows 桌面应用程序。
在中名称框中,为项目指定唯一名称 (例如,Walkthrough_SimpleDebug)。
单击 “确定”。
Visual Studio 创建一个新项目,并在 Windows 窗体设计器中显示新窗体。 有关详细信息,请参阅Windows 窗体设计器。
上视图菜单中,选择工具箱。
随即将打开工具箱。 有关详细信息,请参阅工具箱。
在工具箱中,单击按钮控件,将控件拖到窗体设计图面。 将按钮拖动窗体上。
在工具箱中,单击文本框中控件,将控件拖到窗体设计图面。 Drop文本框中窗体上。
在窗体设计图面上,双击该按钮。
这会转到代码页。 光标应位于
button1_Click。在
button1_Click函数中,添加以下代码:C#复制textBox1.Text = "Button was clicked!";
C++复制textBox1->Text = "Button was clicked!";
在“生成”菜单上,选择“生成解决方案”。
该项目应顺利生成,没有错误。
调试窗体
现在,已准备好开始调试。
若要调试在本演练中创建的 Windows 窗体
在源窗口中,单击你添加的文本的同一行的左侧的空白:
C#复制textBox1.Text = "Button was clicked!";
C++复制textBox1->Text = "Button was clicked!";
出现一个红点并且该行上的文本突出显示为红色。 红点表示一个断点。 有关详细信息,请参见断点 当您在调试器下运行该应用程序时,此调试器将在命中该代码时在该位置中断执行。 然后您可以查看应用程序的状态并调试它。
备注
此外可以右键单击任意行的代码中,指向断点,然后单击插入断点该行上添加断点。
在“调试”菜单上选择“启动”。
Windows 窗体开始运行。
在 Windows 窗体中,单击添加按钮。
在 Visual Studio 中,这将转到行上的代码页设置了断点的位置。 该行将用黄色突出显示。 现在,可以查看应用程序中的变量并控制其执行。 你的应用程序现已停止执行,等待您的操作。
上调试菜单中,选择Windows,然后观看,然后单击Watch1。
在中监视 1窗口中,单击某一空行。 在中名称列中,键入
textBox1.Text(如果使用 Visual Basic 或 Visual C#) 或textBox1->Text(如果使用 c + +),然后按 ENTER。监视 1窗口会显示此变量的值与引号中:
""在“调试”菜单上选择“逐语句”。
TextBox1.Text 的更改的值监视 1窗口:
Button was clicked!上调试菜单中,选择继续以继续进行调试您的程序。
在 Windows 窗体中,再次单击按钮。
Visual Studio 将中断再次执行。
单击表示断点的红点。
这将在代码中移除该断点。
在“调试”菜单上,选择“停止调试”。
附加到 Windows 窗体应用程序进行调试
在 Visual Studio 中,可以将调试器附加到正在运行的进程上。 如果使用 Express Edition,不支持此功能。
若要将附加到 Windows 窗体应用程序进行调试
在上述步骤中创建的项目中,单击左侧边距处来再一次所添加的行处设置断点:
C#复制textBox1.Text = "Button was clicked!";
C++复制textBox1->Text = "Button was clicked!";On the Debug menu, select Start Without Debugging.
The Windows Form starts running under Windows, just as if you had double-clicked its executable. The debugger is not attached.
On the Debug menu, select Attach to Process. (This command is also available on the Toolsmenu.)
The Attach to Process dialog box appears.
In the Available Processes pane, find the process name (Walkthrough_SimpleDebug.exe) in the Process column and click it.
Click the Attach button.
In your Windows Form, click the one and only button.
The debugger breaks execution of the Windows Form at the breakpoint.
See Also
- Debugging Managed Code
- Debugger Security
- from: https://docs.microsoft.com/zh-cn/visualstudio/debugger/walkthrough-debugging-a-windows-form?view=vs-2017
演练:调试 Windows 窗体的更多相关文章
- 如何:对 Windows 窗体控件进行线程安全调用
http://msdn.microsoft.com/zh-cn/library/ms171728(VS.90).aspx http://msdn.microsoft.com/zh-cn/library ...
- Windows 窗体启动和关闭的事件顺序
本文系转载学习. 对于关注对 Windows 窗体应用程序中引发的每个事件按次序进行处理的开发人员来说,事件引发的顺序特别重要.当某种情况需要小心处理事件时(如重绘窗体的某些部分时),必须知道事件在运 ...
- C#开发Windows窗体应用程序的步骤
使用C#开发应用程序时,一般包括创建项目.界面设计.设置属性.编写程序代码.保存项目.程序运行等6个步骤. 1.创建项目 在Visual Studio2017开发环境中选择“文件”→“新建”→“项目” ...
- 最佳实践扩展Windows窗体DataGridView控件 .net 4.5 附示例代码
Windows窗体DataGridView控件的性能调优.net 4.5 在处理大量数据时, DataGridView 控制可以消耗大量的内存开销,除非你仔细地使用它. 在客户有限的内存,你可以避 ...
- 创建可按比例调整的布局的 Windows 窗体
能够正确调整大小的窗体可以提高您的用户界面的易用性. 此演练演示了如何创建当用户调整窗体大小时按比例调整的布局. 您将使用 TableLayoutPanel 控件实现一个接收联系人信息的数据输入窗体. ...
- Windows 窗体设计器(Windows Forms Designer)入门
Visual Studio 2010 更新:2010 年 9 月 Windows 窗体设计器提供多个用于生成 Windows 窗体应用程序的工具. 本演练阐释如何使用设计器提供的各种工具生成应用程 ...
- C#创建、安装、卸载、调试Windows Service(Windows 服务)的简单教程
前言:Microsoft Windows 服务能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面.这 ...
- Windows服务二:测试新建的服务、调试Windows服务
一.测试Windows服务 为了使Windows服务程序能够正常运行,我们需要像创建一般应用程序那样为它创建一个程序的入口点.像其他应用程序一样,Windows服务也是在Program.cs的Main ...
- C#学习笔记-Windows窗体基本功能(Login登录界面)
本菜鸟由于实习工作的原因,不得不快速接触C#语言,刚刚好又要做毕业设计,所以就通过自学的方式一举两得地完成这两件事情. 故此文字记录或代码中的各种文件名之类均是以毕业设计为模版记录的,看着不方便之处请 ...
随机推荐
- TypeScript学习笔记 (一)基础特性
一. 字符串新特性 1. 多行字符串 var str = ``; 2. 字符串模板 var world = "world"; var str = `hello ${world}`; ...
- Codeforces 235C Cyclical Quest 字符串 SAM KMP
原文链接https://www.cnblogs.com/zhouzhendong/p/CF235C.html 题目传送门 - CF235C 题意 给定一个字符串 $s$ ,多组询问,每组询问的形式为 ...
- BZOJ4802 欧拉函数 数论
原文链接http://www.cnblogs.com/zhouzhendong/p/8117744.html 题目传送门 - BZOJ4802 题意概括 Description 已知N,求phi(N) ...
- java分页实现
虽然现在有很多好用的框架,对分页进行支持,很简单的就把分页的效果做出来,但是如果自己手写是一个怎样的流程的?今天就来说说它,手动实现分页效果. 一.分页的思路 首先我们得知道写分页代码时的思路,保持思 ...
- mysql的基础增删改查(一)
修改,操作表:1.建表:create table MyClass(id int(4) not null primary key auto_increment,name char(20) not nul ...
- new Vue 发生了什么
new Vue 发生了什么 new vue 我们从入口分析,我们new 一个实例化对象,是由Funcction实现的,来看一下源码,在src/core/instance/index.js 中. imp ...
- springboot整合springmvc上传文件
1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...
- 自己总结的C#编码规范--3.特定场景下的命名最佳实践
特定场景下的命名最佳实践 命名空间 要使用PascalCasing,并用点号来分隔名字空间中的各个部分. 如Microsof.Office.PowerPoint 要用公司名作为命名空间的前缀,这样就可 ...
- Xamarin Essentials教程发送邮件Email
Xamarin Essentials教程发送邮件Email 邮件是一种更为灵活的数据分享方式.它可以帮助用户将一个应用程序的数据分享给其他用户,而其他用户不需要安装特定的应用程序,就可以在任意时间 ...
- DRF的视图
DRF的视图 APIView 我们django中写CBV的时候继承的是View,rest_framework继承的是APIView,那么他们两个有什么不同呢~~~ urlpatterns = [ ...