c# - 调试 Windows 窗体应用程序 C# 添加监视

标签 c# windows winforms

我是 Windows 窗体应用程序编码的新手(而且对一般编码来说是相当新的)。我正在尝试调试我的代码。我一直在调试时使用 watch ,但是我似乎无法将任何变量添加到 watch 列表中。有谁知道为什么?

具体来说,我试图弄清楚以下两个变量有什么问题: 1.用户 2.路径名

一旦我弄明白了,我想在文本框“ImageFileWrapperPath”中显示字符串 ImageFileWrapper。

非常感谢您提供的每一点帮助。如果可能的话,我希望得到解释,以便我可以为将来学习。

请看下面我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void ChooseImageFileWrapper_Click(object sender, EventArgs e)
        {
            String TheUser = Environment.UserName;
            String PathName = "C:\Users\" + TheUser + "\Dropbox\PATENT\Waks & Co\";
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.InitialDirectory = PathName;
            openFileDialog1.Filter = "Pdf Files|*.pdf";
            openFileDialog1.RestoreDirectory = true;
            openFileDialog1.Title = "Image File Wrapper Chooser";

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    String ImageFileWrapper = openFileDialog1.FileName;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
                }
            }
        }

        private void ImageFileWrapperPath_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

最佳答案

我不知道您将这些变量添加到监视列表中有什么问题。通常你在需要的点上设置一个断点,运行程序直到你遇到断点,然后右键单击变量名并选择 Add Watch....
顺便说一下,作为这些变量,局部变量,你不需要将它们添加到 Watch 窗口,它们已经在 Locals 窗口中 (DEBUG->WINDOW->Locals)

但是您的代码在这一行中有一个简单的错误

String PathName = "C:\Users\" + TheUser + "\Dropbox\PATENT\Waks & Co\";

在 C# 中,反斜杠需要进行转义,将其加倍或在整个字符串前加上这样的逐字字符

String PathName = @"C:\Users\" + TheUser + "\Dropbox\PATENT\Waks & Co\";

最后我建议避免手动构建路径字符串,而是使用 Path.Combine 方法

String PathName = Path.Combine(@"C:\Users",TheUser,@"Dropbox\PATENT\Waks & Co\");

最后一点,您可以使用此代码获取用户目录

string userdir = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
string  PathName = Path.Combine(userdir, @"Dropbox\PATENT\Waks & Co\");

如果用户通过操作系统工具更改了其用户文件夹,这也将起作用。

关于c# - 调试 Windows 窗体应用程序 C# 添加监视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36019625/

相关文章:

php - VirtualAlloc() 失败 : [0x00000008] Not enough storage is available to process this command

C# Windows 窗体半透明

c# - 在 C# 中解压字节数组

c# - 如何在 C# 中存储 SQL 查询的结果字符串

windows - 在 Windows 上安装 pygraphviz

c# - System.Windows.Forms.SaveFileDialog 不强制执行默认扩展

c# - 将当前应用程序作为单个实例运行并显示上一个实例

c# - 如何抽象 Linq 查询的选择列表中的字段?

c# - 如何知道 Visual Studio 项目项是否为 WebReference?

c - 如何解决 Windows 中的 libatomic 问题?