比较SortedList中的所有TextBox

时间:2014-03-14 13:18:37

标签: c# winforms button textbox

我正在尝试在SortedList中添加三个Textbox,然后检查它们是否为空以及它们是否相等。如果这是假的,则禁用我的确定按钮。

var entries = new SortedList<string, int>();
foreach (var textBox in new[] {
  this.txbGroupSeparator,
  this.txbDecimalSeparator,
  this.txbCellDelimiter
})

//this.okButton.Enabled = !string.IsNullOrEmpty(this.txbCellDelimiter.Text) &&
//    !string.IsNullOrEmpty(this.txbDecimalSeparator.Text) &&
//    !string.IsNullOrEmpty(this.txbGroupSeparator.Text) &&
//    !(this.txbCellDelimiter.Text == this.txbDecimalSeparator.Text) &&
//    !(this.txbCellDelimiter.Text == this.txbGroupSeparator.Text) &&
//    !(this.txbDecimalSeparator.Text == this.txbGroupSeparator.Text);

到目前为止,这是我的代码......

2 个答案:

答案 0 :(得分:0)

你的意思是这样的:

var entries = new SortedList<string, int>
{
    { txbGroupSeparator.Text, 0 },
    { txbDecimalSeparator.Text, 1 },
    { txbCellDelimiter.Text, 2 }
};

okButton.Enabled = txbGroupSeparator.Text == txbDecimalSeparator.Text &&
    txbDecimalSeparator.Text == txbCellDelimiter.Text &&
    !txbCellDelimiter.Text.IsNullOrEmpty();

首先使用值声明并初始化SortedList,然后启用/禁用按钮。

答案 1 :(得分:0)

   var lstTextValues = new  SortedList<string, string>();
    lstTextValues.Add(this.txbGroupSeparator.Name,this.txbGroupSeparator.Text);
    lstTextValues.Add(this.txbDecimalSeparator.Name,this.txbDecimalSeparator.Text);
    lstTextValues.Add(this.txbCellDelimiter.Name,this.txbCellDelimiter.Text);

    this.okButton.Enabled = true;
    if(lstTextValues.Exists(e => string.IsNullOrEmpty(e.Value)))
    {
        this.okButton.Enabled = false;

    }
    foreach (KeyValuePair<string, int> srtlst in lstTextValues)
    {
        if (lstTextValues.Count(e => e.Value == srtlst.Value) > 1)
        { 
             this.okButton.Enabled = false;
        }
     }