Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试Windows窗体应用程序C#添加手表_C#_Windows_Winforms - Fatal编程技术网

调试Windows窗体应用程序C#添加手表

调试Windows窗体应用程序C#添加手表,c#,windows,winforms,C#,Windows,Winforms,我不熟悉Windows窗体应用程序中的编码(而且对一般的编码也很陌生)。我正在调试我的代码。我总是在调试时使用手表,但是我似乎无法将任何变量添加到手表列表中。有人知道为什么吗 具体来说,我试图找出以下两个变量的错误: 1.用户 2.路径名 一旦我明白了这一点,我想在文本框“ImageFileWrapperPath”中显示字符串ImageFileWrapper 非常感谢每一点帮助。如果可能的话,我想解释一下,这样我可以为将来学习 请参阅下面我的代码: using System; using Sys

我不熟悉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 + "\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)
        {

        }
    }
}

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

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

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\");

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

因此,我对编程也是新手。但我会尽我所能帮助你。所以为了你的

String PathName=“C:\Users\”+TheUser+“\Dropbox\PATENT\Waks&Co\”

看起来你有很多问题

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

String PathName=“'C:\\Users\\'”+TheUser+“\\Dropbox\\PATENT\\Waks&Co\\'”


现在,对于用户变量,您是否获得了文本框的信息?

我认为您需要先点击断点,然后才能将内容添加到监视列表中。我不确定您是如何到达调试点的,因为这一行应该抛出一个编译错误:
String PathName=“C:\Users\”+TheUser+“\Dropbox\PATENT\Waks&Co\”
。您需要避开后斜杠,即使用“\”或使用逐字字符串,即
@“C:\Users\”+TheUser+@“\Dropbox\PATENT\Waks&Co\”;
很抱歉,这是我关于堆栈溢出的第一篇文章。我将尝试不再这样开始。