我在VB6程序中使用ssTab控件(这可能是我的整个问题),我正在将数据绘制到位于选项卡0上的Picturebox中.当我重绘图形时(例如,在窗口调整大小之后),第一个我做的是清除方框:
Picture2.Line (0, 0)-(Picture2.Width, Picture2.Height), RGB(255, 255, 255), BF
当Tab 0可见时,该工作正常,但如果在显示不同的选项卡时调用此代码,则整个可见选项卡(以及选项卡0)的背景将变为白色.不仅仅是Picture2的区域,而是两个标签的整个可见区域.除0以外的选项卡和当前选定的选项卡不受影响.
我第一次粗略地解决这个问题的方法是在上面的Line命令之前将标签更改回标签0:
SSTab1.Tab = 0 ' Select tab containing PictureBox2 DoEvents
但是得到了相同的结果 - 原始标签和0标签现在都是白色的(尽管它确实将可见标签更改回标签0).
我注意到,当发生wallpainting时,Picture2.Width的值比它应该的大.如果Tab 0可见,当我调整窗口大小时,Picture2.Width在7180和21225 Twips之间变化.当我选择Tab 1并调整大小时,Picture2.Width大约为82180(高度保持在应有的位置).
我知道SStab有点儿马车,但有没有人知道任何工作方式?我可以将修复(在重绘后重新绘制两个选项卡上的灰色背景)整合在一起,但我想了解为什么Picture2.Width失去理智......
SStab使一个选项卡上的控件可见而隐藏其他控件的方式是使Left属性为负(基本上是"屏幕外")
这不应该影响width属性 - 你有自定义重新大小代码?