我是Windows编程的新手,因为在我之前的工作中,我主要涉及Web技术,主要是在后端。我继承了一个Winforms应用程序,我最大的一个噩梦是在一个表格可以进入的无尽状态中导航。
举个例子,表单的状态为“新建”和“编辑”,具体取决于用户是否决定添加或编辑记录。在这个表格上,我们有逻辑。如果此texbox具有特定值,则禁用这些其他文本框等。这导致这些规则的无限链接。因此,文本框的TextChanged事件将影响另一个字段。它反过来将触发更改其他控件状态的X事件。它很快变成了一个无法维持的纠结混乱。
必须有一种更好的方法......简单而优雅的方法可以解决这个问题。有什么建议吗?
答案 0 :(得分:1)
我所做的是使用一个名为FormatControls()
的方法。在这种方法中,我实现了所有逻辑,例如myTextbox.Enabled = mycheckBox.Checked
等等。
我从表单中的事件处理程序中调用此方法,例如on checked changed等...我也在适当时调用它(即,新加载的表单没有数据,从数据库加载的记录等)。这对我来说已经适合多年了,它使一切都变得不那么复杂。
你是对的,如果你没有使用模式,它可能变成一个太复杂的东西。
答案 1 :(得分:0)
您可以尝试使用Application.Idle事件来执行启用禁用逻辑并将此部分与业务逻辑部分隔离。
答案 2 :(得分:0)
根据您在表单上的控件,您可以取消单独的文本框并添加/删除按钮,并用DataGrid
替换整个作品。