如果条件完成,如何做出大于2的语句?

时间:2019-03-26 17:22:07

标签: vb.net visual-studio if-statement

我正在Visual Studio 2015中制作一个Windows vb.net窗体应用程序,用户可以在其中通过从文件对话框浏览器或从Web URL导入在PictureBox中预览图像。如果用户选择使用文件对话框从计算机导入它,则预览将在选择图像文件后自动加载。 如果用户不小心填写了网址和文件对话框,我想清除网址的文本框(称为url_cover),该文本框显示在文件对话框中导入的文件名(称为Browse.FileName)和PictureBox预览(称为Preview),并且还显示一个MessageBox,告诉用户仅使用一种导入选项即可重试。

我已经尝试过制作一个基本的if语句(直到一切正常为止):

If url_cover.Text <> Nothing And Browse.FileName <> Nothing Then
MsgBox("Please do not import image using both file browser and URL.", [vbOKOnly], "Warning") 
url_cover.Clear() Browse.FileName = Nothing preview.Enabled = False

我期望如果同时填充url和文件浏览器,所有这些事情都会发生,但是我出现一个错误,告诉我第二条指令(即url_cover.Clear())之后期望语句的结尾。 我尝试切换必须执行这三个指令的顺序,但是每次相同时,第二条指令之后,就应该声明语句的结尾。 希望我的解释清楚了,我的问题是,如果If语句的条件完成,我如何执行两条以上的指令。

2 个答案:

答案 0 :(得分:2)

如果您希望在满足条件的情况下执行多个语句,则需要将其包含在以End If结尾的块中。

您的代码仅在满足条件时才执行消息框,然后在满足条件或不满足条件时尝试执行其余操作。由于尝试将多条语句放在一行上,因此出现End Of Statement Expected错误。

试试这个..

If url_cover.Text <> Nothing And Browse.FileName <> Nothing Then
    MsgBox("Please do not import image using both file browser and URL.", [vbOKOnly],  Warning") 
    url_cover.Clear()
    Browse.FileName = Nothing
    preview.Enabled = False
End If

答案 1 :(得分:-1)

尝试一下...如果需要将语句放在一行上,可以使用:来分隔语句。

If Not String.IsNullOrEmpty(url_cover.Text) AndAlso Not String.IsNullOrEmpty(Browse.FileName) Then MsgBox("Please do not import image using both file browser and URL.", [vbOKOnly], "Warning") : url_cover.Clear() : Browse.FileName = String.Empty : preview.Enabled = False

或阻止...

If url_cover.Text <> Nothing And Browse.FileName <> Nothing Then
    MsgBox("Please do not import image using both file browser and URL.", [vbOKOnly], "Warning") 
    url_cover.Clear()
    Browse.FileName = Nothing
    preview.Enabled = False
End If

恕我直言,请查看String.IsNullOrEmptyMultiple statements in one lineAndAlso operator。如果语句可能会变长,晦涩难懂的可读性等,也要尽量避免使用:,但是使用它没有什么错。

  

如果您认为此帖子可以改进,请考虑添加评论。