gpt4 book ai didi

c# - 如果文本框为空,如何禁用按钮

转载 作者:行者123 更新时间:2023-12-05 08:16:32 25 4
gpt4 key购买 nike

首先抱歉我的英语不好。我是 C# 的初学者,我制作了一个 Windows 窗体应用程序,但如果文本框为空,我无法禁用一个按钮。我尝试了一些 Enabled 方法,但它们没有用。希望有人能帮我解决这个问题。非常感谢

public partial class ModulusForm : Form
{
public double nje;
public double dy;
public double pergjigja;
public double rezultati;
public ModulusForm()
{

InitializeComponent();
Button btn = new Button();
btn.Click += new EventHandler(butoniGjenero_Click);
}
private void butoniPerfundo_Click(object sender, EventArgs e)
{
this.Close();
}
private void butoniGjenero_Click(object sender, EventArgs e)
{
Random random = new Random();
nje = random.Next(1, 100);
dy = random.Next(1, 100);
if (nje > dy)
{ textboxPyetja.Text = "X = " + nje + " " + "dhe" + " " + "Y = " + dy; }
else if (nje > dy)
{
nje = random.Next(1, 100);
dy = random.Next(1, 100);
}
rezultati = nje / dy;
}
private void butoniPastro_Click(object sender, EventArgs e)
{
textboxPyetja.Clear();
textboxPergjigja.Clear();
textboxPergjigjaSakt.Clear();
}
private void butoniVerteto_Click(object sender, EventArgs e)
{
try
{
pergjigja = double.Parse(textboxPergjigja.Text);
}
catch
{
var informim = MessageBox.Show("Rishiko fushat!", "Verejtje", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (textboxPergjigja.Text == "")
{
//nothin' baby
}
else
{
if (textboxPyetja.Text == "")
{
var informim = MessageBox.Show("Fusha e pyetjes eshte null!", "Verejtje", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
if (pergjigja == rezultati)
{
textboxPergjigjaSakt.Text = "Pergjigja eshte e sakte";
}
else
{
textboxPergjigjaSakt.Text = "Gabim." + " " + "Pergjigja e sakte eshte: " + "" + rezultati;
}
comboboxVargu.Items.Add(nje + " / " + dy + " = " + rezultati);
}
}
}
}

最佳答案

感谢@Cody Gray 已经提出了这个建议;我刚刚对其进行了扩展,因此您可以看到如何实现以及它是如何工作的

概览
您可以为 textboxPergjigja.Text 连接事件处理程序的文本已更改。

在您创建的处理程序中,您可以评估您的按钮是否应为 Enabled或不使用 - 使用 string.IsNullOrWhiteSpace()检查以设置此项。

首先:
在表单的构造函数中,订阅 textboxPergjigja.Text文本框的 TextChanged事件。

像这样:

public ModulusForm()
{
InitializeComponent();
Button btn = new Button();
btn.Click += new EventHandler(butoniGjenero_Click);

// Add the subscription to the event:
textboxPergjigja.TextChanged += textboxPergjigja_TextChanged;
}

下一步:
添加与该事件的正确委托(delegate)签名相匹配的处理程序。

像这样:

public textboxPergjigja_TextChanged(object sender, TextChangedEventArgs e)
{
// If the text box is not "empty", it will be enabled;
// If the text is "empty", it will be disabled.
butoniVerteto.Enabled = !string.IsNullOrWhiteSpace(textBoxPergjigja.Text);
}

这样,每当textBoxPergjigja中的文本文本框已更改;评估已运行,您的按钮将始终正确启用/禁用。

希望对您有所帮助! :)

附加信息
您还可以使用 textBox.Text.IsNullOrEmpty() ,它仍然会起作用——正如@Cody 所建议的那样

我用过string.IsNullOrWhiteSpace() ,而不是 textBox.Text.IsNullOrEmpty()原因如下:

  • .IsNullOrEmpty()方法检查textBox.Text是否是 null或字符总数等于0。

这可能带来的问题是,如果用户在文本框中输入一个空格,它就不再是Empty。或 null ;因此,此检查将返回 true .如果程序的逻辑要求在文本框中输入一个实际值,则此逻辑可能存在缺陷。

  • 另一方面:string.IsNullOrWhiteSpace()检查将检查 3 个条件 - 如果输入 stringnull , Empty and 也仅包含空白字符(空格、换行符等)。

我希望这会增加一些额外的绒毛,让您在未来做出明智的决定。

关于c# - 如果文本框为空,如何禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38040912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com