我正在将传统VB应用程序移植到C#/ Winforms。虽然绝大多数用户界面都是完整的,但我遇到了一些问题,经过一些挖掘后我无法解决。我的表单包含一堆组框,全部相同(除了一些标识符,例如组框名称),每个框都包含几个控件。我有一个弹出的上下文菜单,允许我打开子表单,允许我更改一些设置等。每个组框表示一个物理对象,可以禁用。当我禁用组框时,该框的所有子项将被禁用或不可见。禁用组框时,上下文条带菜单也会更改,以便上下文菜单中的某些菜单项被禁用,然后“已启用”菜单选项在已选中和未选中之间切换,显示当前状态。问题是,当我禁用其中一个组框时,该框被禁用,但单击组框时不再打开上下文菜单。这并不奇怪,但我想弄清楚如何在保持上下文菜单一直启用的同时禁用组框。我需要能够禁用这些组框中的一个或多个;事情是这样的,一旦我禁用了一个组合框,我无法再次启用它,因为上下文菜单不再激活。
旧的VB代码设法做到这一点,但是并不是非常清楚如何以及代码或多或少是一团糟我宁愿不花时间进行逆向工程。
感谢您就如何实现这一目标提出任何建议。我想解决方法可能只是让组框中的所有控件都不可见,然后将组框的颜色更改为“显示”禁用。
答案 0 :(得分:1)
我通过简单地隐藏所有控件并更改框的颜色来解决这个问题,使其显示为禁用。