在C#编程中,随着项目的复杂度增加,需要有效的方法来调试代码并逐步执行代码。本文将展示如何使用modds工具为股票图表程序添加自动完成功能,并介绍如何进行调试。
要实现本文中的功能,需要以下工具和环境:
modds 拖放编程示例:C#股票图表自动完成(第3部分)(源代码)
使用modds Designer,可以使用“Inspection Tools->ToStringMessageBox”在Control Toolbox面板上检查控件是否接收到数据。
例如,将消息框连接到StockChartAutoComplete示例上的SearchCommand。在这个例子中,黑线的连接索引设置为0,蓝线的连接索引设置为1。这意味着数据将首先流向消息框,然后流向YahooDailyMarketData。
在StockChartAutoComplete程序的用户界面上,搜索按钮与SearchCommand控件数据绑定。当用户按下搜索按钮时,消息框会弹出。消息框会停止数据流,直到用户在其中按下OK按钮。这是检查连接控件上是否有数据流的最简单方法。
当modds程序在DEBUG模式下编译时,所有使用Scripts->C#Script控件编写的代码将生成一个.cs文件。这些文件位于Project Directory->Build->Debug->Scripts->ProgramScript-><Module filename.cs>。
可以使用Microsoft Visual Studio打开.cs文件,并在其上设置断点。
使用modds Designer打开StockChartAutoComplete示例项目。右键单击项目并选择Debug以运行。
使用Microsoft Visual Studio打开以下.cs文件:
在GetKeyInText函数的开头设置断点。
在Microsoft Visual Studio中,选择Debug->Attach to Process…以附加到正在运行的程序StockChartAutoComplete。
在StockChartAutoComplete执行窗口中,在Stock文本框中输入一个字符。Microsoft Visual Studio应该在GetKeyInText函数处中断。
在StockChartAutoComplete项目中,Log.xsml对象实例在程序启动时创建。
打开StockChartAutoComplete项目并双击打开Application.moddc。可以看到以下行:
<PreloadObject Path="Schema\Log.xsml"/>
PreloadObject行告诉modds对象构建器在创建MAIN对象之前创建路径模块对象。在这个例子中,Log.xsml在MAIN(MainWindow.xsml)之前创建。可以在Log.xsml处启动Microsoft Debugger。
打开Log.xsml,在Control Toolbox面板上拖入modds Common Controls->Start Trigger,在Control Toolbox面板上拖入Scripts->C# Script并输入以下代码:
using Panel C#
using System;
using System.Diagnostics;
static public void StartDebugger()
{
Debugger.Launch();
}