我有这个textBox Textchanged事件:
private void anyTextBox_TextChanged(object sender, EventArgs e)
{
btnUpload.Enabled = txtHost.TextLength > 0 && txtUploadFile.TextLength > 0;
checkBox1.Enabled = txtDir.TextLength > 0;
this.Invalidate();
}
我在里面输入ftp地址的textBox是:txtHost
ftp地址已包含ftp:// 用户只应输入textBox的地址,例如:
问题是用户可以在textBox中输入任何内容,如果我只输入例如:dfsdfsf
然后在上传的课程中,它将无法解析此地址:
using(Stream requestStream = request.GetRequestStream())
它将抛出异常:无法解析远程名称:'dfcdfdsf'
所以我想在这个事件中做的TextChanged是用户只能输入/粘贴有效的ftp地址。
例如:3.4.5.6有效吗?或ftp.test.com?还有哪些其他格式作为ftp地址有效? 如何在TextChanged事件中进行检查,这样如果用户键入/粘贴无效格式,它将抛出一个messageBox?
答案 0 :(得分:2)
就像@JamesBlond在命令中所说,dfsdfsf也可以是一个有效的地址。 我会建议你让用户在检查ftp地址之前按一个按钮,在键入时检查它,然后尝试连接到某些服务器,这将花费你的内存,你的程序可能会运行得更慢,因为它反复执行{{ 1}}代码。
您可以使用regex排除某些永远不会用于ftp地址的字符。
如果您确实想在键入时检查它,请不要在每个TextChanged事件上检查它,因此请在检查地址前等待一到两秒钟。 (可以使用计时器完成)。