我有一个循环遍历 Form1 中的每个文本框并获取它们的标签,因为我需要比较对象 ID。在我的一个文本框中已经存在一个对象的情况下,我不想让用户再次添加这个对象,但是如果这个对象在任何一个文本框中都不存在,那么用户只能添加这个项目。
我已经在下面的这个循环中尝试过了,但它似乎不起作用,因为它一直告诉我“对象引用未设置为对象的实例。” 在这条线上 if (resval.types.xan_ID == tbItems.types.xan_ID) 在我得到我想要的消息框之后,我怎样才能改变这个代码来实现这个目标。
// Get the name which will be passed into the textbox
var resval = form2result.getValue();
//go through each of my textbox
foreach (TextBox tb in TextBoxList)
{
var tbItems = (ReportItems)tb.Tag;
if (tb.Text != "")
{
//if the item returned is the same as an item in the textbox
if (resval.types.xan_ID == tbItems.types.xan_ID)
{
// display this message and break out of the loop
MessageBox.Show("You have previously selected this report, please chose another");
break;
}
// otherwise add the item into the textbox.
else
{
// otherwise add name to the textbox
_dict[sender].Text = resval.ToString();
}
}
}
报告项目
public class ReportItems
{
public DataSet1.xspGetAnalysisTypesRow types { get; set; }
//Analysis types or Reports
public ReportItems(DataSet1.xspGetAnalysisTypesRow analysisTypes)
{
types = analysisTypes;
}
//Return the name of this type.
public override string ToString()
{
return this.types.xan_Name;
}
}
getValueFunction(这是另一种形式)
public ReportItems getValue()
{
ReportItems selection = (ReportItems)reportListBx.SelectedItem;
// if user has selected a value
return selection;
}