我目前正在做一个家庭作业,我需要设置一个计算器类型的程序。它需要读取一个或两个用户输入值(取决于计算),然后根据这些值执行计算。启用基于文本框和单选按钮的按钮
我现在有
- 2文本框(
tbInput1
和tbInput2
), - 4单选按钮,
- 一个按钮(
btnCalc
) - 空白
label
在其中显示结果。
两个radioButtons(rbtnTrap
和rbtnFak
)在选中时禁用第一个文本框;另外两个需要输入两个值,因此在检查时启用两个文本框。 btnCalc
应该在相关数量的文本框具有值时启用自己 - 相关数量的文本框取决于检查哪个单选按钮。
的问题是,当我检查rbtnTrap
或rbtnFak
(禁用tbInput1
)和tbInput2
输入一个整数,btnCalc
撑禁用。
我会尽力解释我到目前为止有:
- 在
_TextChanged
事件tbInput1
,我有第二if
块贴在下面的精确副本。tbInput1
仅在rbtnPot
或rbtnFib
被选中时才有效,以便仅在这种情况下才能运行控制。 - 在
_TextChanged
事件tbInput2
,我有以下的,因为tbInput2
是总是启用和控制必须运行无论哪个单选按钮被选中,虽然控制应该运行不同,如果我检查rbtnTrap
或rbtnFak
相到rbtnPot
或rbtnFib
。
或者这就是我对它的理解。我当然愿意接受建议和更正。
private void tbInput2_TextChanged(object sender, EventArgs e)
{
//For single-field values
if ((rbtnTrap.Checked || rbtnFak.Checked) &&
!string.IsNullOrWhiteSpace(this.tbInput2.Text))
{
btnCalc.Enabled = true;
}
else
{
btnCalc.Enabled = false;
}
// For multi-field values
if ((rbtnPot.Checked || rbtnFib.Checked) &&
(!string.IsNullOrWhiteSpace(this.tbInput1.Text)
&& !string.IsNullOrWhiteSpace(this.tbInput2.Text)))
{
btnCalc.Enabled = true;
}
else
{
btnCalc.Enabled = false;
}
}
啊哈!那么,我完全可以明白,为什么处置!= null组件会重新禁用该按钮。但是,我不确定它来自哪里,因为我必须设定程序以某种方式来完成它。任何提示? (并没有直接的答案是完全正确的,我想学习 - 不复制/粘贴:)) – Xarth
我不知道你为什么在讨论“*处置!=空分量*”。你在'someObject.Dispose()'中使用“处置”这个术语吗? (请参阅我的编辑您的问题) – Otiel
啊,对不起。一旦我完成了F10的运行问题,它将我带到了designer.cs文件中。我首先看到的是'protected override void Dispose(bool disposing)',并且在if(disposing &&(components!= null))之下。显然不是你的意思。感谢您的编辑和提示。我会看到关于调整我的代码以在正确的子句之后停止检查。 :) – Xarth