C# 将按钮与对象数组中的特定对象关联
使用C#和Visual Studio 2017 基本上,我正在设计一个允许用户预订座位的程序。我可以通过强制(或多或少)让它工作,但必须有更好的方法 每个按钮代表一个座位,当点击时-如果座位尚未预订-用户将填写他们的信息,并能够预订座位。如果座位已经预订,它将显示先前预订座位的人的详细信息(名字、姓氏等)——我目前已将其存储在数组中 是否有方法将每个按钮与数组中的对象关联?预定座位很容易,但是点击预定座位来显示详细信息(或者删除预定并释放座位)是我认为我可以比现在更有效率的部分C# 将按钮与对象数组中的特定对象关联,c#,winforms,class,object,button,C#,Winforms,Class,Object,Button,使用C#和Visual Studio 2017 基本上,我正在设计一个允许用户预订座位的程序。我可以通过强制(或多或少)让它工作,但必须有更好的方法 每个按钮代表一个座位,当点击时-如果座位尚未预订-用户将填写他们的信息,并能够预订座位。如果座位已经预订,它将显示先前预订座位的人的详细信息(名字、姓氏等)——我目前已将其存储在数组中 是否有方法将每个按钮与数组中的对象关联?预定座位很容易,但是点击预定座位来显示详细信息(或者删除预定并释放座位)是我认为我可以比现在更有效率的部分 即,如果单击座椅
即,如果单击座椅A1并输入详细信息,则座椅将保留。稍后,其他座位将被预订。如果我想返回并查看A1或删除预订,我如何将按钮A1与存储在阵列中的数据相关联。这只是为了提供一个我使用过的解决方案,感谢上面对
列表的评论(Jimi)
建议
下面的示例显示了显示预订座位详细信息的代码。然后将字符串
“firstName”、“lastName”等放入另一个文本框中显示。所有座位都被组织到一个列表中
,其中填充了类型为“seat”的类对象,它们具有代码中可以看到的所有属性
单击按钮时,它将填充txtSeatSelected
文本框,然后使用该文本框根据seatID字符串匹配相应的座位
foreach (var seat in seatsList)
{
if (seat.seatID == txtSeatSelected.Text)
{
firstName = seat.firstName;
lastName = seat.lastName;
address = seat.address;
city = seat.city;
province = seat.province;
postalCode = seat.postalCode;
}
}
该代码的类似迭代在整个程序中使用,以根据情况查找我希望在整个程序中修改的对象
感谢留言者的帮助。不要使用数组。构建一个引用所有所需详细信息的专用类,创建一个
列表
,并为您创建的每个按钮
以及相关详细信息添加一个新的SpecializedClass()
。然后,您可以以任何方式过滤/搜索列表
:按按钮(使用其名称、标记值、选项卡索引等)、人名、座位号。。。类属性引用的任何内容。问题主题和您的配置文件暗示这是类赋值。因此,您可能对允许使用的数据结构有限制。您已指示正在使用对象数组。如果您只能使用数组,您应该在问题中说明这一点,这样我们就不会浪费时间提出不相关的建议。您可以使用按钮的标记属性。但我不会在数组中存储任何内容。为什么不将座位ID
存储在按钮的标签中,然后单击从标签中使用座位ID
从数据库中获取所需信息?@TnTinMn这是一项任务,但我们对允许使用的内容没有任何限制,如果有任何此类限制(如您所说),我会提到它们。重点是UI设计,但很明显,我也希望代码从“良好设计”的角度尽可能发挥功能。@Jimi你能详细说明一下我将如何实现这一点吗?所有按钮都有一个标记值
,我创建了一个包含座椅详细信息的类(我最初是将这些信息存储在数组中,但列表听起来好多了)。这个问题可能看起来很傻,但我什么时候创建一个新的SpecializedClass()
?我会在程序开始时为每个按钮/座位初始化一个吗?