问题描述:
 WinForm程序,主窗体采用分割条分为两个Panel,左边Panel1中放置一个PictureBox控件;右边Panel中放置一个TabControl控件,有4格TabPage页。定义一个全局变量iDataKind,并在在Form_Load()事件函数中加入了iDataKind=0;赋值语句。现在问题是,每次程序启动后,跟踪发现iDataKind=1,而且每次激活PictureBox控件的OnPaint()时,跟踪发现iDataKind值仍然为1。这是为什么呢???
  说明:iDataKind值只是在程序运行后,用户通过点击TabControl控件的TanPage选项卡时才赋予不同的值,其中点击TabPage1选项卡时,对应事件函数中设置iDataKind=0;点击TabPage2卡时,对应事件函数中设置iDataKind=1;点击TabPage3选项卡时,对应事件函数中设置iDataKind=2;。3个TabPage中均放置有ListBox控件,通过点击ListBox的OnClick()来更改iDataKind值,同时激活PictureBox的OnPaint来绘制不同的图像。出现的问题如上描述,请帮忙解决!!

解决方案 »

  1.   

    3个TabPage中均放置有ListBox控件,通过点击ListBox的OnClick()来更改iDataKind值,
    =============================
    你不是说在选哪个Tab的时候更改iDataKind值吗?然后点击Tab里面的ListBox也更改它的值????TabControl控件本身就有SelectedIndex属性,标识当前选择的Tab是哪一个。
      

  2.   

    一楼说的对。用SelectedIndex 属性啊
      

  3.   

    回复1,2偻,可能是我没说明白,iDataKind值只在ListBox控件(4个TabPag中均放有不同的listBox,分为listBox1...4)中的OnClick()事件函数进行修改,主要问题是:不管在那个listBox的onClick事件中修改iDataKind值,最后pictureBox的OnPaint函数中iDataKind 均显示为1,,非常奇怪!!怎么解决?
      

  4.   

    http://www.lokcore.com/avrilxu/article.asp?id=11
    tab页选项卡的实例