回 帖 发 新 帖 刷新版面

主题:如何初始化tabContol

我在做Winfrom开发的时候遇到这样的问题:
    我用了一个tabContol,有6个tabPage,每个tabPage上都有一个dataGriedView,每个dataGridView上又有一列自定义的dataGridViewCheckBox列,我希望的是,在这个窗体加载的时候就初始化所有(6个)tabPage上的dataGridViewCheckBox列,使其状态为选中,即:value=true,可是每次都只有第一个tabPage即:tabPage1中的dataGridViewCheckBox列被初始化了,我查了一下,原来是第1个tabPage在窗体加载的时候是默认显示的,请问该用什么事件来初始化所有的tabPage中的dataGridViewCheckBox列呢?

回复列表 (共6个回复)

沙发

可以在加载前全部初始化
也可以在tabcontrol的selectchange事件(不一定是这个,但是有一个事件的意思是当选择改变时触发)
获取将要选中的page初始化里面的view

板凳

谢谢你的回复!
可是如果选择selectchange事件(当选择改变时触发)会产生这样的情况:点击不同的选项卡(page)以后都又初始化了一次,我想要的是让用户去选中checkbox或取消checkbox,需要在不同的page之间切换的时候还保留用户的选择,所以只能是加载前初始化,可是不知道用什么事件?

3 楼


你单独写一个加载view到page的方法
思路是
 判断view是否初始
初始则直接加载到page
没初始则初始再在加载到page

在selectchange事件里面调用这个方法

4 楼

可能你还没有理解我的意思
我已经解决了这个问题,非常感谢回复!

5 楼

哦 你想解决的不是保存用户的操作吗?

如果你都解决了那你的疑问是什么?

6 楼

我要解决的是在初始化的同时保存用户的操作结果,我是这样解决的:

初始化方法:getColumn()

然后在Form_Load事件中循环获得每个tabPage,即遍历一遍tabPage,使之成为当前活动页,调用getColumn(),从而使每个tabPage获得初始化

我来回复

您尚未登录,请登录后再回复。点此登录或注册