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



我是Windows表单应用程序中编码的新手(一般编码也很陌生)。我正在尝试调试我的代码。我在调试时一直使用手表,但是我似乎无法将任何变量添加到监视列表中。有人知道为什么吗?

具体来说,我试图找出以下两个变量的问题: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 + "DropboxPATENTWaks & 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)
        {
        }
    }
}
我不知道

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

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

String PathName = "C:Users" + TheUser + "DropboxPATENTWaks & Co";

在 C# 中,反斜杠需要转义,将其加倍或在整个字符串前面加上逐字字符,如下所示

String PathName = @"C:Users" + TheUser + "DropboxPATENTWaks & Co";

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

String PathName = Path.Combine(@"C:Users",TheUser,@"DropboxPATENTWaks & Co");

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

string userdir = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
string  PathName = Path.Combine(userdir, @"DropboxPATENTWaks & Co");

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

所以我

也是编程新手。 但我会尽我所能提供帮助。 所以为了你的

字符串路径名 = "C:\Users\" + TheUser + "\Dropbox\PATENT\Waks & Co\";

看起来你有很多问题。

所以首先你需要在所有的\前面\,因为代码认为这是一个转义字符。 我注意到的第二件事是你的 + 用户 + 和 ;仍然是字符串的一部分,而不是连接。 所以这是我拥有的代码,没有给我任何错误或警告。

字符串路径名 = "'C:\\Users\\'" + TheUser + "'\\Dropbox\\PATENT\\Waks & Co\'";

现在,对于 TheUser 变量,您是否正在获取文本框的信息?

最新更新