Vložení více obrázků na PictureBox   otázka

VB.NET, WinForms

Vývojové prostředí: Visual Basic 2008 Express Edition

Dobrý den (nebo noc) :-)

potřeboval bych malinko pomoct, děláme se švagrem hru (jedná se o simulator řízení vlakové dopravy). Bude to něco v tomto stylu:

http://erwes.michalhanzlik.cz/soubory/ezj01a.jpg

Program a funkčnost máme tak nějak zvládnutou, ale chtěl bych udělat "editor kolejiště" do kterého by se umístily jednotlivé prvky(koleje, výhybky, návěstidla....) a celé by se to pak dalo uložit třeba jako bitmapa, a do txt souboru jaké prvky a na jakých souřadnicích se nachází.... ale to asi nebude problém

Jde mi o to vkládání prvků. Zkoušel jsem to variantou, že jsem si za běhu vytvářel PictureBoxy, ale problém nastává už tady! Nevím předem jak bude navrhované nádraží dlouhé a proto potrebuji i scrollovat.... ale s Autoscrollem Formu to nejde, a když si posuvníky přidám tak mi hýbou pouze s obrázkem v PictureBoxu který mám jako podklad, ne s vytvořeným PictureBoxem.

Vím že toho chci moc, ale jsem začátečník a už si vážně nevím rady.

Předem děkuji za odpověď.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Trochu jsem si spletl obrázek, tento už je správně velký.

http://erwes.michalhanzlik.cz/soubory/ez...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak složité to nebude, Vám stačí jeden PictureBox a jeden obrázek. Ten PictureBox hoďte do Panelu a nastavte mu SizeMode na auto. Hlídejte kliky, přemapujte je na prvky ve dvourozměrném poli (x,y), jehož typ může být třeba nějaký jmenný prostor (e.g. Volno, Kolej, Vyhybka, ...). Klikáním například přepínejte typ konkrétního čtverečku a nakonec vše vykreslete do Bitmapy, kterou pak pošlete na PictureBox. Zvětšovní mapy bude pak pouze otázkou předimenzování pole (ReDim) a vytvoření nové Bitmap.

Inspirace zde: http://www.vbnet.cz/clanek--10-programuj...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vyzkouším to... Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A co když potřebuju již vložený prvek posunout?To bude asi problém že?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nebude, najdete to ve snippetu Jak umožnit přemisťování komponent na formuláři pomocí myši

http://vbnet.cz/snippet--10-jak_umoznit_...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No, musíte si poradit nějak sám, třeba to můžete udělat pomocí přetahování myší. V události MouseDown si zaznamenáte pozici myši (ta nastává, když uživatel zmáčkne tlačítko myši), a v události MouseUp si zjistíte pozici, kde uživatel myš pustil. Pokud je to na jiném políčku, musíte to nějak přesunout - smazat to původní a nastavit ten obrázek na nové místo (a asi si i uložit, co tam je).

Během přetahování můžete v události MouseMove nějak vyznačit políčko, na kterém myš právě je.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback