我的一个问题,关于控件切换,各位有什么好办法没有??

时间:2021-04-11 14:43:58
假设菜单有3个功能:
功能一
功能二
功能三

每个功能对应一个界面,每个界面上有不同的控件如下
功能一  界面一(一个textbox, 两个ComboBox ,一个DataGrid,两个button)
功能二  界面二(一个textbox, 两个ComboBox ,一个DataGrid,两个button)
功能三  界面三(一个textbox, 两个ComboBox ,一个DataGrid,两个button)

且一个Combobox的onselectedchanged事件控制另一个combobox,这两个combobox的内容控制datagrid的选择结果~~

现在是功能一,二,三之间的切换,如功能一切换到功能二,原来的控件和新的控件该分别怎么处理?

我的方法是先把this.Controls.Clear();
然后把新的控件加进来,但这样有如下问题:

多切换几次,屏幕闪烁厉害,比较慢,且切换次数越多,程序越慢~~,似乎控件有记忆功能,触发Combobox的onselectedchanged事件很多次??为什么会这样??

各位有没有遇到这个问题?怎么处理??

6 个解决方案

#1


各位帮我看看啊,你们有没有遇到这种情形啊~~~,是不是我的方法从根本上就错了??

提示提示了~~

#2


用tabControl的page把你的控件管理起来好了。每切换一个界面就设置相应的page激活

#3


把控件隐藏与显示。

#4


是这样,没个控件在显示的时候要装入数据,因为这些数据可能已经被其他的功能修改过,比如,功能二中输入的数据,在功能一中使用,如果仅用隐藏/显示,有两个问题:
1,如果一个功能中有很多控件,控制起来岂不是很麻烦??
2,如果某控件的数据已经发生了变化,例如,combobox的数据源中增加了一条记录,如果用visible来控制,数据怎么刷新??

#5


firewing(可乐),可以说详细一点吗?tabControl是做类似office选项那样的标签组,和我想的在同一窗口中按不同需要加载不同控件有点区别,另外,page激活的时候,包含控件的数据会不会自动刷新?

#6


tabControl是类试office选项的标签组,page激活可以刷新也可以不刷新,看你的要求~~

#1


各位帮我看看啊,你们有没有遇到这种情形啊~~~,是不是我的方法从根本上就错了??

提示提示了~~

#2


用tabControl的page把你的控件管理起来好了。每切换一个界面就设置相应的page激活

#3


把控件隐藏与显示。

#4


是这样,没个控件在显示的时候要装入数据,因为这些数据可能已经被其他的功能修改过,比如,功能二中输入的数据,在功能一中使用,如果仅用隐藏/显示,有两个问题:
1,如果一个功能中有很多控件,控制起来岂不是很麻烦??
2,如果某控件的数据已经发生了变化,例如,combobox的数据源中增加了一条记录,如果用visible来控制,数据怎么刷新??

#5


firewing(可乐),可以说详细一点吗?tabControl是做类似office选项那样的标签组,和我想的在同一窗口中按不同需要加载不同控件有点区别,另外,page激活的时候,包含控件的数据会不会自动刷新?

#6


tabControl是类试office选项的标签组,page激活可以刷新也可以不刷新,看你的要求~~