Avatar
Martin Vejvoda:

Čau,
mám problém s vertikálním scroll barem. V picture boxu mám graf, ve kterém se posunuju pomocí scroll baru. Problém je, že když graf obsahuje víc položek (cca 100+) tak se nemůžu dostat na všechny položky a asi 20 položek nevidím, potřeboval bych scrollovat dál, ale už to nejde. Tohle by měla obstarávat vlastnost Maximum, ale když ji snížím/zvýším tak se nic nestane. Nevíte někdo, co s tím?

Odpovědět 22.8.2014 12:00
while (!asleep()) sheep++;
Avatar
sadlomaslox25:

Jak to mas v kodu sestavene? Nechce se me ted poustet VS ale pokud si pamatuju tak se udela scrollView a do vlastnosti Child/Content se da ten picture box a ono se to "udela samo" ne ?

 
Nahoru Odpovědět 22.8.2014 18:00
Avatar
Martin Vejvoda:

jj, jedná se o WF. Jen upřesním, že mám VS2010 Express (asi to ale na to mít vliv nebude), ale hlavně sem začátečník, takže žádný složitý věci, prosím :)

Nahoru Odpovědět 22.8.2014 19:27
while (!asleep()) sheep++;
Avatar
sadlomaslox25:

Dyt je to tam to samy. Das panel, na panelu das AutoScroll true, do panelu das pictureBox a tomu das SizeMod auto a je to.

 
Nahoru Odpovědět 22.8.2014 21:01
Avatar
Odpovídá na sadlomaslox25
Martin Vejvoda:

Díky za radu, ale to mi nefunguje, celý se mi to rozhodilo a problém stejně přetrvával.

Nahoru Odpovědět 22.8.2014 23:06
while (!asleep()) sheep++;
Avatar
Odpovídá na Martin Vejvoda
sadlomaslox25:

Jaky problem pretrvava ? Co se ti rozhodilo ? Ted sem to skousel Panel->PictureBox + ty property s obrazkem s rozlisenim 16 000x12 000 a funguje to jak ma.

 
Nahoru Odpovědět 23.8.2014 13:05
Avatar
Martin Vejvoda:

asi nejlepší bude, když to ukážu na obrázku:

  1. obrázek ukazuje graf s SizeMod na Normal. V levé části grafu jsou čísla, která určují pořadové číslo položky. Aktuálně tam nevidím asi 60 položek ze 190.
  2. obrázek ukazuje graf s SizeMod na AutoSize. Graf je celý rozhozený.
Nahoru Odpovědět 23.8.2014 18:28
while (!asleep()) sheep++;
Avatar
Odpovídá na Martin Vejvoda
sadlomaslox25:

To bude chtit asi aby si sem postnul vic kodu protoze jak rikam Panel+PictureBox funguje normalne.

 
Nahoru Odpovědět 23.8.2014 19:33
Avatar
Martin Vejvoda:

a co sem mám hodit? Kreslení grafu?

Nahoru Odpovědět 23.8.2014 19:54
while (!asleep()) sheep++;
Avatar
sadlomaslox25:

Jo ty ten graf kreslis jo ? no to by sme se mohli pomalu dostavat k jadru problemu :D
predpokladam ze to NEKRESLIS do bitmapy kterou pak nastavujes jako zdroj pro pictureBox

 
Nahoru Odpovědět 23.8.2014 20:16
Avatar
Martin Vejvoda:

asi nejlepší bude, když sem hodim kousek kódu

tohle se stane v okamžiku spuštění programu:

if (pbGraf1.Image == null)
            {
                pbGraf1.Image = new Bitmap(pbGraf1.Width, 1000,
                System.Drawing.Imaging.PixelFormat.Format32bppArgb);
            }

následující část proběhne v okamžiku, když se má překreslit (prostě zobrazit) graf:

if (pbGraf1.Image != null)
            {
                using (Graphics g = Graphics.FromImage(pbGraf1.Image))
                {
                    g.FillRectangle(SystemBrushes.ButtonFace, 0, 0,
                                    pbGraf1.Width, pbGraf1.Height);
                    dg.DrawGraf(g, pbGraf1, scbGraf1.Value, analyt1,
                       Convert.ToDouble(tbOd1.Text), Convert.ToDouble(tbCilHodnota1.Text)); // zde se kreslí čáry a text
                    g.Save();
                }
            }

P.S. zkusil sem si s tím trochu pohrát pohrát a zmenšil sem bitmapu, takže se mi to v AutoSize módu nerozhodí, stále se ale nemůžu dostat na posledních 60 položek

Nahoru Odpovědět 24.8.2014 10:16
while (!asleep()) sheep++;
Avatar
sadlomaslox25:

ty mas nejak divoky kod xD

tak napred si udelas bitmapu ktera je jen 1000 px vysoka (ano sama se neroztahne kdyz ji das jen 1000px na vysku)

pak ovsem vubec neberes jeji vysku v potaz kdyz se odkazujes na pbGraf1.Height protoze pbGraf1.Height != 1000.

a nakonec este nechapu proc posilas do metody DrawGraf objekt Graphics tak objekt Picturebox. Nekresli se to nahodou jen do Graphics ?

 
Nahoru Odpovědět 24.8.2014 12:18
Avatar
Odpovídá na sadlomaslox25
Martin Vejvoda:

divoký? možná trochu, jak sem psal, sem tak trochu amatér

PictureBox do DrawGraf(…) posílám kvůli rozměrům, se kterýma tam pracuju, ale šlo by to nahradit číslem, to mě nenapadlo.

Jinak máš pravdu, že tu bitmapu ignoruju, to mi nedošlo, ale nějak nevim, kde bych to měl změnit.

Nahoru Odpovědět 24.8.2014 18:50
while (!asleep()) sheep++;
Avatar
Odpovídá na Martin Vejvoda
sadlomaslox25:

Tak bitmapu vytvarej az kdyz vis velikost vykreslovane oblasti.

 
Nahoru Odpovědět 24.8.2014 20:47
Avatar
Martin Vejvoda:

takže to předělat na něco takovýho?

pbGraf1.Image = new Bitmap(pbGraf1.Width, analyt1.Count * 5,
                System.Drawing.Imaging.PixelFormat.Format32bppArgb);
     //analyt1.Count = velikost souboru

bohužel to nefunguje

Nahoru Odpovědět 25.8.2014 15:57
while (!asleep()) sheep++;
Avatar
Odpovídá na Martin Vejvoda
sadlomaslox25:

bitmapu vytvarim tam, kde vim, kolik mista potrebuji k zobrazeni tech dat. nevim, kde presne je to misto v tvem programu. a nevim co ti na postnutem kodu nejde. pojem nefunguje je totiz docela obecny pojem :D

 
Nahoru Odpovědět 25.8.2014 20:58
Avatar
Martin Vejvoda:

furt mám problém se scroll barem, nejsem schopen dostat se posledních 60 položek

Nahoru Odpovědět 26.8.2014 14:49
while (!asleep()) sheep++;
Avatar
Odpovídá na Martin Vejvoda
sadlomaslox25:

no problem bude u tebe v tom ze spatne pocitas vyslednou vysku bitmapy.

 
Nahoru Odpovědět 26.8.2014 14:56
Avatar
Martin Vejvoda:

jakože je malá? i když nastavím výšku na 50 × počet položek v seznamu, tak nejsem schopnej se dostat až úplně dolů

Nahoru Odpovědět 27.8.2014 15:24
while (!asleep()) sheep++;
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Martin Vejvoda
Jan Vargovský:

A víš určitě, že je velikost 50? Očividně ne :)

 
Nahoru Odpovědět 27.8.2014 15:29
Avatar
Martin Vejvoda:

no, jeden řádek má velkost 20, takže 50 je víc než dost

Nahoru Odpovědět 27.8.2014 15:58
while (!asleep()) sheep++;
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 22 zpráv z 22.