C# 在文本框中键入ftp有效地址时,如何检查该地址?
我已更改此文本框文本事件:C# 在文本框中键入ftp有效地址时,如何检查该地址?,c#,.net,winforms,validation,C#,.net,Winforms,Validation,我已更改此文本框文本事件: private void anyTextBox_TextChanged(object sender, EventArgs e) { btnUpload.Enabled = txtHost.TextLength > 0 && txtUploadFile.TextLength > 0; checkBox1.Enabled = txtDir.TextLength > 0;
private void anyTextBox_TextChanged(object sender, EventArgs e)
{
btnUpload.Enabled = txtHost.TextLength > 0 && txtUploadFile.TextLength > 0;
checkBox1.Enabled = txtDir.TextLength > 0;
this.Invalidate();
}
我在其中键入ftp地址的文本框是:txtHost
ftp地址已包括ftp://
用户只应在文本框中输入地址,例如:
- myftp.test.com
- myftp.com
- 1.3.4.5
using(Stream requestStream = request.GetRequestStream())
它将引发异常:无法解析远程名称:“dfcdfdsf”
因此,在这个事件中,我想做的是,用户只能键入/粘贴有效的ftp地址
例如:3.4.5.6是否有效?还是ftp.test.com?其他哪些格式作为ftp地址有效?
我如何才能在TextChanged事件中进行检查,以便如果用户键入/粘贴无效格式,它将抛出一个messageBox?正如@JamesBlond在命令中所说,DFSF也可以是一个有效的地址。 我建议您让用户在检查ftp地址之前按下一个按钮,在键入时检查它,从而尝试连接到某些服务器,这将占用您的内存,并且您的程序可能会运行较慢,因为它会重复执行
requestStream
代码
您可以做的是排除一些永远不会用于ftp地址的字符
如果你真的想在输入时检查它,不要在每次TextChanged事件中都检查它,所以在检查地址之前要等待大约一到两秒钟。(可以使用计时器完成)。DFSF也可以是有效地址。您需要很好地处理错误,但要为用户提供所有选项。如果用户决定输入DFSF,那么他应该能够这样做。您是否尝试过使用
Uri.TryParse
?