禁用c#套接字中的按钮

本文关键字:按钮 套接字 禁用 | 更新日期: 2023-09-27 18:15:38

我在c#中创建了两个按钮。如果另一个按钮的功能出了问题,有没有办法使按钮失效?我给了一个样本代码片段。有两个按钮。一个用于连接,另一个用于浏览文件。如果连接按钮中的连接失败,我想禁用浏览按钮。如何做到这一点?

示例代码片段:
using System;
using System.Drawing;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Collections.Generic;
class Client:Form
{
public Client()
{
    Size = new Size(400, 380);
    Button connect = new Button();
    connect.Parent = this;
    connect.Text = "Connect";
    connect.Location = new Point(295, 20);
    connect.Size = new Size(6 * Font.Height, 2 * Font.Height);
    connect.Click += new EventHandler(ButtonConnectOnClick);
     Button browse = new Button();
    browse.Parent = this;
    browse.Text = "Browse";
    browse.Location = new Point(220, 20);
    browse.Size = new Size(6 * Font.Height, 2 * Font.Height);
    browse.Click += new EventHandler(ButtonbrowseOnClick);
   }
     void ButtonConnectOnClick(object obj, EventArgs ea)  
  {
    tcpClient = new TcpClient("127.0.0.1", 1234);
  }
 [STAThread]
public static void Main()
{
 Application.Run(new Client());
}
}

另一个问题:

是否有办法重置按钮(说,浏览按钮)活动在某个时间,等待再次点击?

禁用c#套接字中的按钮

你可以直接使用全局标志:

bool connectButtonBroken = false;
private void ButtonbrowseOnClick(object sender, EventArgs e)
{
    if(!connectButtonBroken)
    {
        //do code
    }
}

在Try/Catch块中包装您的connect调用并禁用Catch中的另一个按钮:

    catch (Exception)
    {
       ButtonConnect.Enabled = false;
    }

你可能应该在Try结束之前重新启用它:

    ButtonConnect.Enabled = true;

您需要将对动态创建的Connect按钮的引用存储在表单级别变量中称为ButtonConnect的变量中,而不是在构造函数中存储本地变量。