我正在使用C#
使用Visual Studio 2013 Express启动应用程序(在便携模式下),并使用subst
命令或C#创建虚拟驱动器当量)
目前它适用于流行的媒体中心XBMC,但它最终也可以用于其他程序
在第一个屏幕上,用户可以选择XBMC.exe文件的路径和包含媒体集的目录
但是,在测试时,两个对话框都会出现两次:一次点击“浏览”按钮后,再次单击“确定”或“取消”按钮(在对话框中)。因此,在将所选路径/文件插入文本框之前,每次都必须单击“确定”两次 我不知道为什么会发生这种情况,而且在我自己编程方面我有点像菜鸟......
XBMCPortableLauncher.cs
:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace XBMCAttempt1
{
public partial class XBMCPortableLauncher : Form
{
public XBMCPortableLauncher()
{
InitializeComponent();
}
private void btnSelectMediaFolder_Click(object sender, EventArgs e)
{
// Opens "Browse for media folder" dialog
fBDBrowseMediaFolder.ShowDialog();
if (fBDBrowseMediaFolder.ShowDialog() == DialogResult.OK)
{
// Deletes any existing text in the textbox
tbMediaFolder.Clear();
// Inserts the selected path into the text box if user selects "OK"
tbMediaFolder.Text = fBDBrowseMediaFolder.SelectedPath;
}
}
private void btnSelectXBMCexe_Click(object sender, EventArgs e)
{
// Opens the "Select XBMC.exe" dialog
oFDBrowseXBMCexe.ShowDialog();
if (oFDBrowseXBMCexe.ShowDialog() == DialogResult.OK)
{
// Deletes any existing text in the textbox
tbXBMCexe.Clear();
// Inserts the selected file into the text box if user selects "OK"
tbXBMCexe.Text = oFDBrowseXBMCexe.FileName;
}
}
}
}
有谁能告诉我我做错了什么,以及我要做些什么来解决这个问题? (如果您需要更多信息,请询问)
答案 0 :(得分:1)
但你要两次致电ShowDIalog
。不能那么容易:
fBDBrowseMediaFolder.ShowDialog();
if (fBDBrowseMediaFolder.ShowDialog() == DialogResult.OK)
删除第一个电话。
ShowDialog
正在屏蔽,实际上它会显示您的对话框并返回DialogResult
。因此,只保留实际使用结果的第二个调用。并为两个对话框(fBDBrowseMediaFolder
和oFDBrowseXBMCexe
)执行此操作。