我目前正在更新一个使用WinForms的C#项目。我想做的一个小改动如下。
项目有一个表单,当前允许用户单击一个按钮,然后打开一个文件夹浏览器窗口,在该窗口中,他们可以选择项目的文件夹以从中检索信息。选中后,所选目录将输入到TextBox中。但是,单击TextBox也会打开“文件夹浏览器”窗口。您当前也无法在TextBox中手动输入文本。
我想要做的是(希望)非常简单:我希望用户能够手动输入目录到TextBox中,让项目接受该文本输入,并且TextBox不能打开文件夹浏览器点击后形成。
要记住的其他一些事项:
这是Button的代码,或者至少是相关部分,作为参考。 txtProjectDir
是有问题的TextBox。除了这部分之外,代码中的TextBox没有做太多其他事情。
private void btnBrowse_Click(object sender, EventArgs e)
{
if (chooseProjectFolderDialog.ShowDialog() == DialogResult.OK)
{
clbConvertProjects.Items.Clear();
clbProjects.Items.Clear();
txtProjectDir.Text = chooseProjectFolderDialog.SelectedPath;
cur_projDir = txtProjectDir.Text;
更新:我根据多个用户的输入进行了一些更改(顺便说一句,感谢大家)。这就是代码的相关部分现在的样子:
private void btnBrowse_Click(object sender, EventArgs e)
{
if (chooseProjectFolderDialog.ShowDialog() == DialogResult.OK)
{
clbConvertProjects.Items.Clear();
clbProjects.Items.Clear();
cur_projDir = txtProjectDir.Text;
我还必须将TextBox更改为不是只读的,并从其Event属性中删除对上述方法的引用。现在它可以接受用户输入,并且在单击时不会打开文件夹浏览器。
唯一的问题是:如果我只直接在TextBox中输入文本,而不是通过浏览器弹出窗口选择文件夹,程序似乎没有正确接受输入(即,没有收集信息来自目录)。显然,我仍然需要让程序接受用户输入,因为它目前没有。
更新2 :在提出更多建议(再次,谢谢大家)和旧的试错之后,我重新插入了行txtProjectDir.Text = chooseProjectFolderDialog.SelectedPath;
,因为从方法中删除它对程序功能产生不良影响。我仍然遇到程序接受用户手动输入到TextBox的问题。
更新3 :根据@ blaze_125的建议,当用户离开时,我将不得不为TextBox创建一个新事件。谢谢大家的帮助,我很感激!
答案 0 :(得分:1)
但是,单击TextBox也会打开“文件夹浏览器”窗口。
TextBox的唯一事件是Action - >单击,设置为btnBrowse_Click
我想要做的是(希望)非常简单:我希望用户能够手动输入目录到TextBox中,让项目接受该文本输入,并且TextBox不能打开文件夹浏览器点击后形成。
如果您不希望发生该事件(又名action->click
),则必须从该文本框中删除文本btnBrowse_Click
并将其留空。这将删除您当前链接到文本框点击的event
。
答案 1 :(得分:0)
将会有一个偶数链接到文本框txtProjectDir
以检查此选择文本框,并在属性中选择闪电。
我认为偶数只是点击textbox
。
如果是这种情况,您可能想删除它。
现在,就如何接受文本框中的内容而言,您只想引用文本,而textbox
whitch中的内容将是txtProjectDir.Text
private void btnBrowse_Click(object sender, EventArgs e)
{
if (chooseProjectFolderDialog.ShowDialog() == DialogResult.OK)
{
clbConvertProjects.Items.Clear();
clbProjects.Items.Clear();
cur_projDir = txtProjectDir.Text;