VS 2005常用调试快捷键
F6: 生成解决方案
Ctrl+F6: 生成当前项目
F7: 查看代码
Shift+F7: 查看窗体设计器
F5: 启动调试
Ctrl+F5: 开始执行(不调试)
Shift+F5: 停止调试
Ctrl+Shift+F5: 重启调试
F9: 切换断点
Ctrl+F9: 启用/停止断点
Ctrl+Shift+F9: 删除全部断点
F10: 逐过程
Ctrl+F10: 运行到光标处
F11: 逐语句
今天弟弟教我VS 2005的调试方法了,感觉很神奇。F5,F10,F11很好用,监听程序运行,查看变量值,参数传递,程序逻辑是否有问题。
通过调试,你可以看到自己编写的程序在计算机上是如何运行的。也就是说它的执行轨迹。
举个例子吧。
1、假设在某个网页的管理页面,有DropDownList控件,列出一些ID ;persons.xml存储个人信息:ID,Password,name,sex......;一些TextBox用来显示个人信息。
2、要实现的功能是:在DropDownList下选中一个ID,则在TextBox显示对应的信息。
3、大概思路:在 DropDownList_SelectedIndexChanged() 事件中获取选中的ID的Text 或value,编写函数Function DisplayInfor(string SelectedID)显示,而该函数载入persons.xml,获取、显示信息。
<?xml version="1.0" encoding="utf-8"?>
<!--这是个人信息管理文档-->
<personinfor>
<person id="fengyuwuzu" password="ffyyxiaofeng">
<role>common</role>
<name>李小枫</name>
<sex>女</sex>
<email>fengytongzhou@hotmail.com</email>
<telphone>13465478921</telphone>
<address>重庆/南岸</address>
<ministration>企划部经理</ministration>
<department>企业策划部</department>
</person>
<person id="xiaoxiaobaobao" password="wenchuan80">
<role>common</role>
<name>Ross</name>
<sex>男</sex>
<email>myloveross@hotmail.com</email>
<telphone>001-12546387</telphone>
<address>USA/New York</address>
<ministration>Secretary</ministration>
<department>Public Relations</department>
</person>
</personinfor>//这是persons.xml;
protected void DDL_admin_SelectedIndexChanged(object sender, EventArgs e)
{
string username= DDL_admin.SelectedItem.Text; //获取DropDownList下拉列表ID.Text
DisplayInfor(username); //调用显示信息函数
}
//个人信息显示函数DisplayinInfor();
protected void DisplayInfor(string selectedname)
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("persons.xml"); //加载persons.xml文档
XmlNode xn = xmldoc.SelectSingleNode("personinfor");//取得根节点
XmlNodeList xnl = xn.ChildNodes; //取根节点的所有子节点列表
//遍历所有子节点
foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;//转换子节点类型
if (xe.GetAttribute("id") == selectedname)//查找用户的ID所在节点
{
XmlNodeList xel = xe.ChildNodes;//获得person的所有子节点
foreach (XmlNode xef in xel)
{
XmlElement xg = (XmlElement)xef;
if (xg.Name == "name") //查找name节点
txtUserName.Text = xg.InnerText;//显示name节点的文本
if (xg.Name == "sex") //查找sex节点
txtsex.Text = xg.InnerText;//显示sex节点的文本
if (xg.Name == "email") //查找email节点
txtemail.Text = xg.InnerText;//显示email节点的文本
//Response.Write(txtemail.Text);
if (xg.Name == "telphone") //查找tlephone节点
txtphone.Text = xg.InnerText;//显示telphone节点的文本
if (xg.Name == "address") //查找address节点
txtaddress.Text = xg.InnerText;//显示sex节点的文本
if (xg.Name == "ministration") //查找ministration节点
txtministration.Text = xg.InnerText;//显示email节点的文本
if (xg.Name == "department") //查找department节点
txtdepartment.Text = xg.InnerText;//显示department节点的文本
}
break;//找到要显示的用户节点,跳出
}
//*****//
}
}
你可以在 protected void DisplayInfor(string selectedname)前加个断点,每个foreach中加断点多个,看逻辑是否正确。
开始的时候我把break加在了//*****//的位置,即最外层判断ID节点的位置,无论怎么改动都得不到想要的功能。后来使用VS F10调试(加了N多断点),发现程序从外层 i f 直接跳到break,才明白是哪里错了。
啰嗦很多,总之逻辑能力欠缺哦。慢慢练,哈哈。