禁用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());
}
}
另一个问题:
是否有办法重置按钮(说,浏览按钮)活动在某个时间,等待再次点击?
你可以直接使用全局标志:
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
的变量中,而不是在构造函数中存储本地变量。