Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在文本框中键入ftp有效地址时,如何检查该地址?_C#_.net_Winforms_Validation - Fatal编程技术网

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
问题是,如果我只键入示例:dfsf,用户可以在文本框中键入任何内容

然后,在进行上载的类中,它将无法解析此地址:

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