Я использую элемент управления ssTab (это, вероятно, вся моя проблема) в программе VB6, и я строю данные в Picturebox, расположенный на вкладке 0. Когда я перерисовываю график (например, после изменения размера окна) , первое, что я делаю, это снимите флажок:
Picture2.Line (0, 0)-(Picture2.Width, Picture2.Height), RGB(255, 255, 255), BF
Это прекрасно работает, когда вкладка 0 видна, но если этот код вызывается, когда видна другая вкладка, фон для всей видимой вкладки (а также вкладка 0) окрашивается в белый цвет. Не только область Picture2, но и вся видимая область обеих вкладок. Вкладки, кроме 0 и выбранной вкладки, не затрагиваются.
Моей первой попыткой грубо исправить это было добавление изменения вкладки обратно на вкладку 0 непосредственно перед вышеприведенной командой Line:
SSTab1.Tab = 0 ' Select tab containing PictureBox2
DoEvents
, но это дает одинаковые результаты - обе вкладки оригинала и 0 теперь белые (хотя это и меняет видимую вкладку обратно на вкладку 0).
Я заметил, что при окраске стены значение Picture2.Width становится намного больше, чем должно быть. Если Tab 0 видна, Picture2.Width варьируется от 7180 до 21225 Twips, когда я изменяю размер окна. Когда я выбираю Tab 1 и изменяю размер, Picture2.Width порядка 82180 (высота остается там, где и должна быть).
Я знаю, что SStab немного глючит, но кто-нибудь знает какие-нибудь обходные пути? Я, вероятно, могу собрать вместе исправление (перекрасить фон на обеих вкладках в серый цвет после перерисовки), но я хотел бы понять, почему Picture2.Width сходит с ума ...