Tak to už jsem z toho úplnej jelen. "Picturebox se načte do bitmapy při otevření formuláře.Viz první kód" Buď už nevidím, nebo si nerozumíme. V tom prvním kódu nic nikam nenačítáte!:
' při načtení formuláře(Form_Load)....
TBitmap = New Bitmap(PictureBox1.Width, PictureBox1.Height)
' právě jste založil novou bitmapu, která má stejné rozměry, jako PictureBox1
' nic víc, nic míň (bitmapa je prázdná a s pictureboxem mimo stejné rozměry nemá nic společného
g = Graphics.FromImage(TBitmap)
' na obrázku jste si vytvořil "kreslicí tabuli", abyste naň mohl kreslit
g.Clear(Color.Black)
' obrázek jste vyplnil černou barvou
Potom ale, z nepochopitelných důvodů, kreslíte přímo do Pictureboxu2:
Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
CG += 1
g = PictureBox2.CreateGraphics 'graf teploty na kotli
g.Clear(PictureBox2.BackColor)
'...
'...
Dim g1 As Drawing.Graphics
g1 = PictureBox2.CreateGraphics
'...
'...
Vytvoříte si "tisíc" kreslicích tabulí na jednom a tom samém prvku ( PictureBox2! ), a kreslíte na něj. Pak ale, z ničeho nic použijete
'událost paint
e.Graphics.DrawImage(TBitmap, 0, 0)
, tedy, jestli předpokládám správně, jedná se o událost paint prvku PictureBox2. Jinak řečeno, obsah PictureBoxu, který jste právě pracně pomaloval grafama, překreslíte obsahem prázdného (navíc černého) obrázku, protože do něj jste nic neuložil! Jestli jsem tedy Váš kód pochopil správně, měl byste zkusit něco takového: 1) v události Form_load kód zachovat (pro jednoduchost g i TBitmap deklarovat jako globální proměnné) 2) v metodě Timer3_Tick nedeklarovat žádné galší kreslicí tabule (graphics), ale veškeré výstupy dělat výhradně na toto naše g (tj. nekreslit na PictureBox, ale do TBitmap) 3) jako poslední příkaz metody Timmer3_Tick (až máte vše vykreslené) zavolat metodu paint (Refresh-nout zobrazení) 4) V metodě paint controlu PictureBox2 ponechat to, co tam máte - tzn. vždy, když systém usoudí, že je nutné obsah PictureBoxu zaktualizovat a také vždy, když do grafů doplníte další změřený bod - se Vám na pictureBox vykreslí obrázek TBitmap, který v paměti průběžně doplňujete.
|