我的代码不允许在文本框中输入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 characters! (Aa-Zz, 0-9)", MessageBoxButtons.OK, MessageBoxIcon.Information);
};
return true;
}
我在Button Click事件中调用了此方法,并且消息框按预期显示。但是接下来是一个folderBrowserDialog方法,无论上述代码的结果如何,它都会打开。
public void btExport_Click(object sender, EventArgs e)
{
IsValidFilename(textBox1.Text);
var dialogResult = folderBrowserDialog.ShowDialog();
}
如何不允许应用程序打开folderBrowserDialog?
PS:我希望父应用程序运行,我不想使用Application.Exit()或this.Close()。
答案 0 :(得分:0)
你的方法已经返回一个bool,这意味着你可以这样做:
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))
是
if (!regex.IsMatch(exportName)) //!