84
Microsoft Visual C# 2005 Express Edition
-
#44 a stretch megoldva ha valakit érdekel:
pbox.SizeMode = PictureBoxSizeMode.StretchImage; -
#43 az nem tiszta, hogy hogyan hivatkozok a generált pictureboxok egyik elemére -
#42 Nem várom el, hogy megírd helyettem a programot csak nagy segítség lenne ha ki tudnál segíteni. Csak azzal, hogy ha ráklikkelek a képre akkor jelenjen meg nagyban a pictureboxban.
Letöltöttem pár C#-al foglalkozó könyvet de több száz oldalasak lassan haladok velük. Googlet is több napon át izzaztottam ilyen címszavakkal nagyon sok oldalt találtam is a C#-al kapcsolatosan, túl sokat is. Mégis pont ilyen problémára nem nagyon találtam megoldást (bár meglehet h létezik vhol)...
Látom te otthon vagy a témában neked nem megy rá a délutánod :D
THX
Am vmi ilyesmire lenne szükségem gondolom.
private void ?????_Click(object sender, EventArgs e)
{
pictureBox1.ImageLocation = ?????.ImageLocation;
label2.Text = pictureBox1.ImageLocation;
} -
#41 Leírtam, hogy miként tudsz műveleteket végezni a picturebox kattintásra:
létrehozol egy közös eseménykezelőt!
Eddig úgy csináltad, hogy minden pictureboxhoz külön click eseménykezelőt rendeltél. Most egy közösre van szükséged, ahol a senderből állapítod meg, hogy melyik pictureboxra kattintottak.
Leírni nem fogom a kódot, mert azzal már szinte megírom a programodat. :D
Keress rá gugliban h "eseménykezelés c#" vagy ami még jobb, szerezz egy könyvet! ;) Ha könyvre nincs lehetőséged, akkor a neten is találsz rengeteg c# tutorialt, vagy rendes leckéket, amiből megtanulhatod az objektumorientált programozást! ;) -
#40 Köszi a segítséget.
Az a baj, hogy ezt a programot már ugye megcsináltam fix 5 vizuálisan létrehozott picture boxxal és azokon beállítottam h SizeMode=StretchImage ezt a kóddal létrehozottakon, hogyan tudom beállítani egységesen?
Szintén azt, hogy ráklikkelek a kis képekre és megjelenik a egy nagy pictureboxban meg tudtam csinálni vizuálisan de így,hogy most kóddal hoztam létre a pictureboxokat meg vagyok lőve, hogy hogyan írjam le neki ezt a műveletet.
Még egy problémám lenne,hogy a generált pictureboxokat szeretném egy külön layoutba helyezni és azon belül scrollozni köztük (autoscroll=true).
De most a nulláról indulva nem sikerül ez sem.
A program most így néz ki:
.zip solution
.exe -
#39 a makrók szépen kivették a kódból a lényeget :D
a pbox.ImageLocation=fajlnev -nél a fájlnév i. eleme kell, de gondolom ezt tudod! ;D -
#38 Először is Google a barátod!
és melyik ciklussal: ez nem teljesen mindegy milyen ciklussal dolgozol??? :D:D:D
Hogy válaszoljak a kérdésedre is, a dinamikus létrehozás kb így néz ki:
String[] fajlnev = System.IO.Directory.GetFiles(utvonal, "*.jpg");
for (int i = 0; i < fajlnev.Length; i++)
{
PictureBox pbox = new PictureBox();
pbox.Width = 100;
pbox.Height = 100;
pbox.Left = 10 + i * 100;
pbox.Top = 10;
pbox.ImageLocation = fajlnev[i];
this.Controls.Add(pbox);
}
Aztán létrehozol egy Click eseménykezelőt ami az egérkattintást lekezeli. És ezt szépen hozzárendeled a pictureboxokhoz! A senderből megvan, hogy melyik pictureboxra kattintottak, így annak minden adata is elérhető! -
#37 tehát létrehoztam egy tömböt aminek az elemei az adott mappa .jpg-iből állnak
blablabla....
String[] fajlnev = System.IO.Directory.GetFiles(utvonal, "*.jpg");
int i = 0;
while (i < 5 && i < fajlnev.Length)
pictureBox1.ImageLocation = fajlnev[i];
hogyan hozom kóddal létre a pictureboxokat? és melyik ciklussal thx -
#36 eddig én is eljutottam de hogyan? :D -
#35 A pictureBox-okat ne vizuálisan pakolgasd be, hanem kóddal hozd őket létre! Ezt megcsinálod egy ciklusban annyiszor, ahány képed van. -
#34 Up!
Csináltam egy képnézegető progit: megnyit egy könyvtárat és megjeleníti kicsiben a .jpg fileokat 5db pictureboxban és ha rájuk klikkelek akkor megjelenik egy 6.-ban nagyban.
Szeretném ha a pictureboxok száma nem 5 lenne hanem egy változó érték aminek értéke attól függ, hogy mennyi .jpg filet talál az adott mappában. Hogyan tudnám ezt megoldani? tehát pictureBox1.Imagelocation helyett hogyan tudnék hivatkozni a pictureBoxra?
a //-val jelölt megjegyzésnél már sikerült felvennem egy változót
SPOILER! Kattints ide a szöveg elolvasásához!
private void button1_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog()==DialogResult.OK)
{
utvonal = folderBrowserDialog1.SelectedPath;
label1.Text = utvonal;
String[] fajlnev = System.IO.Directory.GetFiles(utvonal, "*.jpg");
// int i = 0;
// while (i < 5 && i < fajlnev.Length)
// pictureBox1.ImageLocation = fajlnev[i];
pictureBox1.ImageLocation = fajlnev[0];
pictureBox2.ImageLocation = fajlnev[1];
pictureBox3.ImageLocation = fajlnev[2];
pictureBox4.ImageLocation = fajlnev[3];
pictureBox5.ImageLocation = fajlnev[4];
}
............
-
#33 Lenne egy kérésem, most ismerkedek a c# és az objektumorientáltsággal. A programozást nem most kezdtem. Úgyhogy nem kell úgy elmagyarázni mint egy óvodásnak XD
Az lenne a problémám, hogyan tudom azt megcsinálni, hogy írok pár metódust amikkel azt szeretném, hogy az egész programba elérhetőek legyenek.
Mondjuk hasonlóan be lehessen hívni mint a using System
Vagy esetleg öröklődéssel hogy oldható meg?
Előre is köszönöm a segítséget. -
Man19 #32 A rajzolásra és a showhintre megadtad a választ, THX ezeket nem találtam leírva sehol.Nem úgy értettem, hogy a fórum nem aktív(vagyis nem az sg.hu), hanem a téma, de azthittem ez alapból le fog esni...
1. Ott akadtam el, hogy megtaláltam az adott osztálystruktúrába az ellipszis rajzoló függvényt, de ha begépeltem a struktúrát, akkor egy adott pontnál feljebb nem adott választási lehetőséget, hogy elérjek a kör rajzoló függvényhez.
2. Tudom, hogyan lehet objektum eseményeket kontrollálni, nem ez volt a kérdés... Miután én hozzáadom a Tooltip controllt a formhoz, lesz egy olyan tulajdonsága a gombnak, ami régebbi nyelvekbe a "showhint", csak itt az a tulajdonság neve, ami a formon látszik, hogy "tooltip to tooltip" és mivel ez a tulajdonság neve, ezért így kéne logikusan értéket adni neki futás közbe: button1.tooltip to tooltip="szöveg"; Na most ilyen választási lehetőséget alapból nem kínál fel a fordító és semmi mást olyat nem kínált fel, ami utalt volna arra, hogy én a button1-nek ezt a tulajdonságát akarom állítani. Én se dolgoztam még soha C#-ba. Vizual Studio 2008-at használok, és ezzel se dolgoztam még sose.
3. Nem lustaságból nem kerestem meg googleba, hanem mert azt se tudtam hogyan kéne egy ilyenre rákeresni, hogy azt kapjam, amit te elmondtál most. Engem például nem érdekelne az, hogyha valaki lusta keresni, mert szerintem arra való a fórum, hogy egyszerűbben megtaláljuk amit keresünk, ha valaki lusta googlezni én annak is elmondom, ha tudok válaszolni rá amit kérdez. Engem nem érdekel, hogy számomra izgalmas-e válaszolni vagy nem, ha tudok segíteni én akkor is válaszolok szívesen. -
#31 "Hát nem tudom 2 éve nem írt ide senki, ezért nem lehet valami aktív fórum..."
Attól hogy egy adott témába 2 éve nem írtak, attól még lehet aktív egy fórum, csak más témák lehetnek az érdekesebbek.
"1. Mi kell ahhoz, hogy C#-ban rajzolhassak a formra, például egy kört?"
Ez alapján a tananyag alapján:
1. Létrehozol egy új projektet.
2. Az új projekt űrlapján jobb klikk, a helyi menüből kiválasztod a Properties menüpontot.
3. A megjelenő Properties ablakban rákattintasz a villámot szimbolizáló ikonra, ami az űrlap eseményeit sorolja fel.
4. A megjelenő események közül megkeresed az Paint eseményt, és a melette levő üres mezőre duplán kattintasz.
5. A forráskódban megjelenik a Form1_Paint metódus, ami az űrlap mozgatásakor, átméretezésekor és visszaállításakor zajlik le.
6. A Form1_Paint metódusba beleírod az alábbi kódot:
e.Graphics.FillEllipse(Brushes.White, 15, 100, 50, 50); - ez rajzol egy fehér színnel kitöltött, az űrlap bal szélétől 15 pixelre, az űrlap tetejétől 100 pixelre levő, 50 pixel széles és 50 pixel magas kitöltött ellipszist/kőrt.
Vagy:
e.Graphics.DrawEllipse(Brushes.White, 15, 100, 50, 50); - ez rajzol egy piros színnel megrajzolt, az űrlap bal szélétől 15 pixelre, az űrlap tetejétől 100 pixelre levő, 50 pixel széles és 50 pixel magas kitöltetlen ellipszist/kőrt.
7. A projektet elmented, majd futtatod.
"Találtam ilyen függvényt a keresőjébe, de sehogy nem tudom elérni..."
Milyen fejlesztőkörnyezetet használsz? Mit csináltál, hol akadtál el pontosan?
"de viszont futási időben, hogy lehet beállítani ezt a szöveget??? "
Mint a fenti példa 2. pontjától mutattam: jobb egérgombbal rákattintasz az űrlapra/Properties menüpont/a Properties ablakban villámot szimbolizáló ikon/kiválasztod a neked megfelelő - például Load - eseményt/az esemény kódjába megadod az alábbit:
//Tooltip deklarálása
ToolTip toolTip1 = new ToolTip();
//Mutatjuk a szöveget akkor is, ha az űrlap nem aktív
toolTip1.ShowAlways = true;
//Szöveg beállítása és objektumhoz rendelése
toolTip1.SetToolTip(this.button1, "My button1");
Ahol a button1 a megfelelő esemény azonosítója, a "My button1" pedig a megjelenő szöveg.
Forrás: ToolTip
C#-ban nem dolgozom aktívan, különösképpen nem is tanították, csak a programozásban szerzett gyakorlatomra és a Google-ból elérhető irodalmakra hagyatkoztam.
"Hát én úgy gondolom, hogy azért jöttek létre a fórumok, hogy megbeszéljük rajtuk a gondjainkat, ha valaki kérdez tőlem valamit, és tudom a választ, akkor válaszolok rá, és nem azt mondom, hogy keresd meg googleba, mert akkor minek van fórum?"
Igen ám, csak a fórum nem arról szól, hogy egy adott feladatot megoldjunk/a probléma megoldásához szükséges kézikönyvet/leírást elolvassuk/a megoldáshoz szükséges irodalmakat megkeressük helyetted. Némi konstruktív vérizzadás kell, hogy végül egy kérdés felvetésének a megválaszoló számára kihívás legyen.
Ha úgy veted fel a kérdést, hogy "már alapból lusta vagyok utánakeresni a megoldásnak, keressétek meg helyettem", az a válaszadó számára nem izgalmas.
Bővebben:
Fórum Etikett
Eric Steven Raymond - Hogyan kérdezzünk okosan -
#30 Nem azt mondtam, hogy google-lal keresd meg, hanem ott nem találtál semmit? Mert én azzal amit írtam rákerestem, és az első ~10 találat mind arról szólt, hogy kell vonalakat meg köröket rajzolni.
Ha meg magyar infó kell, a prog.hu fórumán szerintem csak programozók járnak és válaszolnak.
"...ha valaki kérdez tőlem valamit, és tudom a választ, akkor válaszolok rá, és nem azt mondom, hogy keresd meg googleba..."
Ezzel csak az a gond, hogy nem tudom a választ. Sosem volt még szükségem arra, hogy rajzoljak. -
Man19 #29 Hát én úgy gondolom, hogy azért jöttek létre a fórumok, hogy megbeszéljük rajtuk a gondjainkat, ha valaki kérdez tőlem valamit, és tudom a választ, akkor válaszolok rá, és nem azt mondom, hogy keresd meg googleba, mert akkor minek van fórum? Egyszerűbb sokkal, mint órákig szenvedni a neten való keresgéléssel , és így ráadásul magyarul kapom meg az információt. -
#28 Ha beírod Google-ba, hogy csharp form draw, elég sok mindent kiad. Azok alapján nem tudod elkezdeni?
Vagy próbálkozhatsz még WPF-fel. -
Man19 #27 Hát nem tudom 2 éve nem írt ide senki, ezért nem lehet valami aktív fórum...:D Ezért kérdeztem, hogy egyáltalán olvassa-e valaki... :D
1. Mi kell ahhoz, hogy C#-ban rajzolhassak a formra, például egy kört?
Találtam ilyen függvényt a keresőjébe, de sehogy nem tudom elérni...
2. Ugyebár, ahoz, hogy lehessen "showhintet" adni egy objektumnak, kell hozzá egy Tooltip vezérlő, amit fel kell húzni a formra, ha ez meg van, akkor be lehet állítani a tulajdonságok között, hogy mi legyen a szöveg, de viszont futási időben, hogy lehet beállítani ezt a szöveget??? -
#26 Tedd fel a kérdést, és aki tud az válaszol rá. Nem chat ez, hogy életjelre kelljen várni. -
Man19 #25 Üdv!
Él még ez a fórum, mert tennék fel pár kérdést, ha ad valaki valami életjelet... :D -
Árva Péter #24 Hy
tudna nekem segíteni vki C#-al hogy lehet etherneten kommunikálni egy plc-vel
és hogy lehet normálisan adatokat küldeni és fogadni excel ből. -
fera87 #23 Én is megvettem a könyvet, de sajna ami nekem kell az ott nincs leírva -
blackgamer #22 olvasom softwareonline.hu-t, erre ezt látom
Minden cikk ingyenesen elolvasható!
ez nagyon király, használjátok ki! én annó tíz-ezreket fizettem a könyvért és a cd-ért
kezdők, haladók, mindenkinek csak ajánlani tudom! -
fera87 #21 Elfogytunk?
Mindenki csak okoskodni lépett be?
Vagy hol vagytok?
Legalább annyit írnátok,hogy fogalmunk sincs,hogyan kell.
-
fera87 #20 Látom sokan vagytok viszonylag
De valaki tud nekem segíteni? -
#19 ez javában is így van (nem véletlenül), oo szemléletmód mindenképpen case sensitive ezt elk kell fogadni és meg kell szokni -
#18 Mondjuk az intellisense mellett ez nem lehet probléma. Másrészt ezek már rég nem azok a klasszikus "könyvtári függvény" utasítások, hanem objektumok/osztályok metódusai. -
#17 Azt én tudom, nem is azzal van a baj, akkor rosszul fogalmaztam meg. A baj ott van, hogy az utasításoknál nem mindent kisbetüvel kell írni: ha writeline-t írsz WriteLine helyett, akkor az egész nem működik. A legtöbb progi mondjuk kijavítja, de akkor is hülyeségnek tartom, hogy ez így van. -
#16 A C++ is case sensitive... -
#15 Akkor a C++ nem normális objektumorientált nyelv? Ahhoz képest eléggé népszerű... -
#14 Látom ahhoz értesz hogy megfogd a lényeget, de még egy szót nem írtál arról hogy mi a problémád :D Nyilván te vagy a szupercoder :)
Üdv -
#13 Minden normálisabb objektumorientált nyelv megkülönbözteti a kis és nagybetűket. -
#12 az M$ VS express ingyenes nem? link
szerintem jobb mint a sharpdevelop (még mindig zárolja a tálcát?) -
#11 C flat -
fera87 #10 Tudom én is,hogy létezik más fejlesztő rendszer, de én kimondottan erről indítottam a fórumot, hameg szerinted mindegy, akár sharpdeveloopban is fejleszthetnénk akkor te nem értesz ehez, mivel nem mindegy a fejlesztő környezet, vannak fejlesztő környezetek amelyek engednek olyat amiket a másik nem. És jelenleg ez a legjobb.
Nem akarok belemenni, de ha kíírjuk azt sokféleképpen szokás jelölni, de mivel két külön "szó" ezért külön szokás írni c sharp, jelölve valóban C#, de vannak olyan emberek sőt könyvben is úgy jelent meg amin kicsit elmosojogtam, hogy c kereszt.
Szóval csak az írjon aki ért is hozzá. -
#9 See? Sharp! :D -
#8 nemis igaz, mer "szísárp" :D -
#7 Én próbálgattam, informatika miatt, valószínűleg még fogom is. Pár dologban egyszerűbb, mint a sima C++, és lehet bátran írni ékezeteket, amikkel a C++ nem volt jóban. Kis és nagy betüket külön kezeli. Mondjuk kicsit idegesítő, hogy ami C++-ban ennyi volt: "cin" vagy "cout", azt itt így kell beírni: "WriteLine", "ReadLine". (igen, a kis és nagybetükre is figyelni kell)
Egyébként nem csharp-nak szokás írni, csak simán így: C#
Ahol nem lehet "#" jelet használni, ott szokták kiírni, hogy sharp. -
#6 **
kereséskor írd egybe csharpnak :)
http://www.csharp.hu/ -
#5 Először is, a csharp-nak kell írni egybe, és létezik hozzá más, nem MS es fejlesztőrendszer.
Az alapkérdés az, hogy milyen előismereteid vannak. Ha eligazodsz Java*ban, akkor itt sem lesz gond, de figyelj arra, hogy nem tökéletesen kompatibilis a Net 1.1, 2, és a most kijött 3-as szabvány.