C# 如何不允许基于条件调用folderBrowserDialog?
我的代码不允许在文本框中输入0-9/a-z以外的任何字符。为此,使用的代码如下,这是一种方法C# 如何不允许基于条件调用folderBrowserDialog?,c#,winforms,C#,Winforms,我的代码不允许在文本框中输入0-9/a-z以外的任何字符。为此,使用的代码如下,这是一种方法 public bool IsValidFilename(string exportName) { var regex = new Regex(@"[^a-zA-Z0-9\s]"); if (regex.IsMatch(exportName)) { MessageBox.Show("Enter only valid
public bool IsValidFilename(string exportName)
{
var regex = new Regex(@"[^a-zA-Z0-9\s]");
if (regex.IsMatch(exportName))
{
MessageBox.Show("Enter only valid characters! (Aa-Zz, 0-9)", MessageBoxButtons.OK, MessageBoxIcon.Information);
};
return true;
}
我在一个按钮点击事件中调用了这个方法,messagebox按预期显示。但是接下来是一个folderBrowserDialog方法,不管上面代码的结果如何,它都会打开
public void btExport_Click(object sender, EventArgs e)
{
IsValidFilename(textBox1.Text);
var dialogResult = folderBrowserDialog.ShowDialog();
}
如何不允许应用程序打开FolderBrowser对话框
PS:我希望父应用程序运行,但不想使用application.Exit()或this.Close()。您的方法已返回布尔值,这意味着您可以执行以下操作:
public void btExport_Click( object sender, EventArgs e )
{
if( IsValidFilename( textBox1.Text ) )
{
var dialogResult = folderBrowserDialog.ShowDialog();
}
}
但是,如果方法失败,则必须返回false:
public bool IsValidFilename(string exportName)
{
var regex = new Regex(@"[^a-zA-Z0-9\s]");
if (regex.IsMatch(exportName))
{
MessageBox.Show("Enter only valid characters! (Aa-Zz, 0-9)", MessageBoxButtons.OK, MessageBoxIcon.Information);
//If this is the location of the error, put return false here.
return false;
};
return true;
}
1快速注释,不应该
if (regex.IsMatch(exportName))
是
我的方法返回true。在用户将有效字符输入文本框之前,我不想继续编写代码。i、 例如,不应在if条件内调用folderBrowserDialog。它应该在外面。@Allan抱歉忽略了一件事,让我编辑一下,我将100%确定答案会起作用:)@Allan如果它无效,你需要在bool上返回false,因此它将不会继续,添加了一个示例,但只有你可以决定工作方式等。如果(!regex.IsMatch(exportName)),方法也应该返回false?谢谢,很好!
if (!regex.IsMatch(exportName)) //!