我是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 变量,您是否正在获取文本框的信息?