使用Select Case / Case Else逻辑产生某些结果的问题

时间:2016-08-05 03:04:19

标签: vb.net

我在Windows窗体中尝试实现的是让我的按钮根据计算的变量计算标签输出,但如果文本框中给出的变量与代码中列出的变量不匹配,则会显示一个消息框出现显示错误,并且由于匹配失败,标签的输出不同。

这里有一些代码可以帮助我们进一步解释我正在使用的内容,以及我收到的错误的描述。

我有一个代码,它创建一个变量,它找到有数字的文本框,用于对输入进行子串并找到输出:

Dim var1 As String
Dim Sb As String
Sb = Textbox1.Text
var1 = Sb.Substring(0, 3)

然后我将结果放到标签上并尝试再次使用它来创建下一个标签或显示消息框说使用此代码时出错:

Select Case var1
  Case var1 = "(result1)" Or "(result2)" Or "(result3)"
    Dim var2 As String
    var2 = "(Value)"
    varlabel.Text = var2.ToString
  Case Else
    Messagebox.Show("Error occured, input not found.")
End Select

我遇到的问题是,当我运行按钮的代码时,第一个标签将成功计算和发布,但第二个标签将无法正确发布,即使我给它了,仍会显示消息框正确输入要运行的代码。有人能说清楚我在这里失踪了吗?

1 个答案:

答案 0 :(得分:0)

这不符合您的要求:

SOCKET m_client_socket;
WSADATA wsadata;
struct sockaddr_in server_addr;
char *http_Request;
char *http_recv_data;
int recv_len;

if (!WSAStartup(DESIRED_WINSOCK_VERSION, &wsadata))
{
    if (wsadata.wVersion < MINIMUM_WINSOCK_VERSION)
    {
        WSACleanup();
        return;
    }
}

// Create socket
m_client_socket = socket(PF_INET, SOCK_STREAM, 0);
if (m_client_socket == INVALID_SOCKET)
{
    AfxMessageBox("socket error : ");
    WSACleanup();
    return;
}

// Set value
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr("www.example.com");
server_addr.sin_port = htons(80);

// Connect
if (connect(m_client_socket, (LPSOCKADDR)&server_addr, sizeof(server_addr)) == SOCKET_ERROR)
{
    AfxMessageBox("connect error : ");
    closesocket(m_client_socket);
    return;
}

// send(m_client_socket, http_Request, strlen(http_Request), 0);
recv_len = recv(m_client_socket, http_recv_data, BUFSIZE, 0);
http_recv_data[recv_len] = '\0';

MessageBox(http_recv_data, "Return Value", NULL);

// Close
closesocket(m_client_socket);
WSACleanup();

我只能假设您还没有阅读Case var1 = "(result1)" Or "(result2)" Or "(result3)" 的文档,甚至试图这样做。它应该是:

Select Case

如果您遇到问题,请务必先阅读文档。

https://msdn.microsoft.com/EN-US/library/cy37t14y(v=VS.140,d=hv.2).aspx