Új hozzászólás Aktív témák
-
Lortech
addikt
Listboxszal:
!A listbox DrawMode property-jét OwnerDrawFixed-re kell állítani!
private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
e.DrawBackground();
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), new Font(''Arial'', 8, FontStyle.Italic), Brushes.Black, e.Bounds, StringFormat.GenericDefault);
e.DrawFocusRectangle();
}
[Szerkesztve]Thank you to god for making me an atheist
-
Lortech
addikt
Mondjuk a main függvény belsejében. De mondhattam volna akármit. Erre a marha egyszerű kérdésre nehéz válaszolni, mert érthetetlen, mit akarsz, mit nem tudsz.
Egyébként nem a példányosításon van a hangsúly, hanem a deklaráció helyén.
Anélkül hogy kened vágod a láthatóságot, elég nehéz magadtól összedobni valami értelmeset.
Szóval pontosíts, konkretizálj, esetleg lássuk a kódot, aztán lehet filózni rajta.
[Szerkesztve]Thank you to god for making me an atheist
-
Lortech
addikt
Osztály. Objektumnak onnantól hívod, hogy létrejött az osztályod egy példánya. Még mindig nem látom át pontosan a helyzetet.
Hogy hova és hogyan kéne elhelyezni a deklarációt és példányosítást, az attól függ, hogy honnan kell tudnod elérni, és mi az osztály feladata. Hú, hát erről oldalakat lehetne írni kapásból általánosan, ha meg konkrétan látjuk a kódot, akkor fél perc alatt el lehetne dönteni.
Szóval van egy windows alkalmazásod, egy form-ot megvalósító cs fájl (form1.cs), és egy program.cs, te utóbbinak egy részletét adtad meg. Ha úgy deklarálod ahogy írtad, akkor valóban elérhető lesz a program.MyXml-en keresztül az összes osztályszintű mezője és tagfüggvénye az osztálynak a formból is, de csak azok (a static deklaráció miatt ugye), a példányszintűek nem! Ha ez kielégíti az igényeid, az osztályod csak osztályszintű dolgokat valósít meg, akkor akár ez a megoldás is jó lehet(ne), innentől kezdve már csak filozófia kérdése, hogy a vezérléshez tartozik-e az xml-es osztályod, vagy a gui-hoz, előbbinél esetén a form osztályod (form1.cs) mezőjeként kell deklarálnod és példányosítanod, utóbbinál úgy, ahogy csináltad. A feltételes módot azért raktam oda az előbb a ''lehet'' szóhoz, mert ennek így nem biztos, hogy van értelme, mert ha csak statikus metódusokból áll az egész osztályod, akkor nem is kell példányosítanod, egyszerűen csak hivatkozol az osztályneve.fv() formában rájuk (nem változónév, osztálynév), ezt pedig megteheted bárhonnan ( azonos namespaceben ).Thank you to god for making me an atheist
-
Lortech
addikt
Attól függ mit jelent neked, hogy alkalmasabb. Könnyebb, kényelmesebb, biztonságosabb? Gyorsabb?
Ha nagyon penge vagy C++-ból, akkor az alkalmasabb lehet. Ha nem vágod se a c#-ot, sem a c++-t, akkor előbbit melegen ajánlom MDX környezettel.Thank you to god for making me an atheist
-
Lortech
addikt
Ilyen bonyolultan fogalmaztam volna?
Azt írtam, hogyha nagyon penge c++-ból. Hol van ettől a ''mint kezdő programozó''. Hadd ne válaszoljam meg azt, amit egyáltalán nem mondtam, csak a számba adtál.
egy olyan projectben ahol gyors és egyben robosztus algoritmusok és adatszerkezetek kódolására nincs szükség?
Az orbano féle MMORPG-kben? Bár relatív, hogy mit tekintesz annak, bizonyára nem egyet értünk ezalatt.Thank you to god for making me an atheist
-
Lortech
addikt
Ha nem directplay akkor sok lehetőséged nincsen szerintem. Winsock vagy .NET környezetben a System.Net.Socket. Nem annyira lényeges kérdés szerintem amúgyse, kb mintha azt kérdeznéd, hogy autoversenyző szeretnél lenni, és milyen kocsit válassz.
Vagy túl vagy már a teljes absztrakt programtervezési szakaszon, és már csak az alacsony szintű implementáció kell?Thank you to god for making me an atheist
-
Lortech
addikt
Az érintett kódrészlet nélkül én nem tudok segíteni.
A hibaüzenetből valami olyasmi jön le, hogy érték típus paraméter lett megadva olyan helyen, ahol referenciát várt volna. (Nem feltétlenül a te programodban, lehet, hogy a MySQLDriverCS hülyül)Thank you to god for making me an atheist
-
Lortech
addikt
Használhatók összetett típusok is, annyi a megkötés, hogy sorosíthatóak legyenek xml-lé. A hashtable implementációja pedig nem ilyen. De használhatsz helyette pl arraylistet. Ha mindenképp hashtable kell, akkor elindulhatsz itt: [link]
b14: Nem erőszak...Thank you to god for making me an atheist
-
Lortech
addikt
Ez lenne a kódrészlet, ami az említett hibát dobja?
Azonkívül, hogy kétszer definiálod a querystringet, nem látok benne semmi problémát, futott nálam. Szóval valami olyasmi problémád lehet, ami a többivel (amit nem másoltál be) függ össze.
Ez a kódrészlet gondolom egy fgv része, mivel visszatérési értéke van. A hibaüzenet paramétert említett, ezért jó lenne látni a paraméterlistát. Meg a kapcsolat létrehozását, pl hogy a függvényen belül hozod-e létre a kapcsolatot, vagy csak átadod ( aztán esetleg nem bontod le ), a readert lezárod-e stbstb.
[Szerkesztve]Thank you to god for making me an atheist
-
Lortech
addikt
HScrollBarnak (és VScrollBarnak) van egy Value propertyje, tehát:
pl.
int a = vScrollBar1.Value; // ahol vScrollBar1 a VScrollBar példányod neve.
Ha mindig az aktuális értéket szeretnéd tárolni a-ban, akkor a VScrollBar ValueChanged eseménykezelőjébe kell beírni a fenti sort.Thank you to god for making me an atheist
-
Lortech
addikt
Azért hogy aztán vissza kelljen alakítani.
_seth_:
N int típusú, TextLength is, mivel egy szám / érték, ezért ToStringezni nem kell.
Propertyket (TextLength) felesleges eltárolni külön ilyen esetben, csak egyszer hívod.. Írd be nyugodtan a forba. De ha nagyon biztos programot akarsz írni, akkor az egész textBox1 stringet tárold el egy segédváltozóban, és annak írd be a ciklusba a hosszát.
str = char.Parse(...) ??? Mit akarsz ezen parsolni? Eleve a típus.parse típust ad vissza, itt char-t (egy darabot!), tehát ha minden áron le akarod parsolni charra, akkor kéne egy ciklus, ahol végigmész a string indexein egyenként, figyelve arra, hogy ne ilyen nulla hosszúságú a string, mert akkor kivétel.. De nem tudom elképzelni, hogy mi értelme van ennek.
A db változót nem árt nullázni, mert a második számolásnál már nem fog helyes értéket adni, mert az előző eredménye benne van, és azt növeled.
Ez a ciklus.. Minek mész végig 0..N, ha fel sem használod az indexet, és minden iterációnál ugyanazt csinálod?
Az i változót ne így deklaráld, mert könnyen hibákhoz és félreértésekhez vezethet.. Egy segédváltozó ritkán jó, ha az osztály mezője, tartozzanak az adott scopehoz, ott legyenek deklarálva.
pl itt: for (int i=0;...) {} Ez vonatkozik az str-re, N-re is, és vsz a db-re, mert csak egy ellenőrzésre kell vagy tájékoztatásra kell, nem az osztályhoz tartozik szorosan, és nem kell megőrizni sem. Ez nem pascal.
Ha csak a kisbetűs magánhangzókat akarod beleírni a switchbe, akkor célszerű a stringet ToLower-rel csupa kisbetűssé alakítani, hogy nagybetűs magánhangzókra is menjen, pl: string str = textBox1.Text.ToLower();
A ''számol'' gombra kattintás eseménykezelője kb így nézne ki sztem, ha a te kódodból indulok ki:
private void button1_Click(object sender, EventArgs e)
{
db = 0;
string str = textBox1.Text.ToLower();
for (int j = 0; j < str.Length; j++)
{
switch (str[j])
{
case 'a': db++; break;
case 'e': db++; break;
case 'i': db++; break;
case 'o': db++; break;
case 'u': db++; break;
}
}
MessageBox.Show(db.ToString());
}Thank you to god for making me an atheist
-
Lortech
addikt
És ez miért nem jó? Simán beírod a control eseménykezelőjébe, hogy maskedTextBox1.Select(0, 0);
b14: értem, de miért kéne külön threadből figyelni, amikor ez a funkció tipikusan a controlhoz tartozik, ott kell megvalósítani. Szerintem semmi nem indokolja, de kiváncsi vagyok rá, hogy orbano mire gondolt.Thank you to god for making me an atheist
-
Lortech
addikt
-
Lortech
addikt
Teszteld le úgy, hogy használsz maszkot, úgy működik Invoke nélkül is. Minden bugról nem tudhatok, mivel működött nálam, nem is gyanakodtam. Invoke hülyeségnek tűnt, mivel nincs szó másik threadről, és ezzel együtt is csak tákolásnak ill. tüneti kezelésnek tartom.
Thank you to god for making me an atheist
-
Lortech
addikt
Akkor olvasd el még egyszer, pont azt mondtam, hogy maszkkal működött nálam, egyből (maszkkal teszteltem elsőre is, mivel maskedtextboxot én sem maszk nélkül szoktam használni ). Maszk nélkül meg nem, de mivel maszk nélkül nem teszteltem, amíg nem írtad az #531-et, ezért nem vettem észre, hogy úgy meg nem működik.
Igen, tákolás, mivel egy hiba következtében kell ehhez folyamodni. Nem úgy értve tákolás, hogy nem jó megoldás, hanem úgy, hogy van egy hiba, ami miatt nem működik a Select eljárás úgy, ahogy azt elvárnánk, és emiatt ''tákolni'' kell. Teljesen mindegy, hogy Mark Rideout írta vagy sem.. Nem a megoldás fikázása volt egyáltalán.
Én nem írtam, hogy szálak közötti függvényhívás, mert ez eleve értelmezhetetlen... De szálak közötti kommunikációra szokás általában használni, amikor szükséges az invocation. Ahhoz, hogy egy control a saját állapotát megváltoztassa, ahhoz nem kell invocationnel hívni a metódusait, ha megfelelően van megírva a control, és a metódusai úgy viselkednek ahogyan azt elvárjuk tőlük. Ezért akadt fel a szemem az invoke hallatán. Éééérteeed??
[Szerkesztve]Thank you to god for making me an atheist
-
Lortech
addikt
Tudtommal subitemhez nem tudsz képet rakni. Viszont ha a listview ownerdraw propertyjét false-ra állítod, akkor saját draw eljárással meg lehet csinálni szerintem.
Na meggugliztam, úgy látom mások is belefutottak már ebbe: [link] és
[link]
Az első linken kód is van a szükséges metódusokkal (példa szinten persze), ebből a drawsubitem a lényeg, a második linken meg találtam egy ilnket ide: [link]
Ez a listview kibővítése, csak fel kell használni a kontrollt, de az első megoldás is csak két perc.
[Szerkesztve]Thank you to god for making me an atheist
-
Lortech
addikt
Mi a cél? Én azt írtam le, hogy kapcsolod ki a JIT debuggert. De ettől még a hiba ott lesz, és valami kivétel keletkezik, amit valahogy le kell reagálni. Ha nincs debugger, akkor vsz. kilép.
A HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger stringet el kéne távolítani.
Ha a hagyományos dr. Watsonos hibakezelőt akarod visszaállítani, akkor azt a drwtsn32 -I parancssal tudod megtenni.Thank you to god for making me an atheist
-
Lortech
addikt
válasz lakisoft #577 üzenetére
A Convert.ToInt32 így néz ki:
public static int ToInt32(string value)
{
if (value == null)
{
return 0;
}
return int.Parse(value, CultureInfo.CurrentCulture);
}Tehát ugyanazt csinálja, mint az int.Parse, de előtte ellenőrzi, hogy az átalakítandó string null-e. Ha igen, akkor nullát ad vissza. Az int.Parse ugyanerre az inputra kivételt dob.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
válasz lakisoft #580 üzenetére
Nem az, az egy kifejezés, és azért mondja ezt, mert "="-t írtál, így azt hiszi hogy értékadásra gondoltál.
== az egyenlőségvizsgálat operaátora, nem =.szerk: Egyébként igen fura egy kód. Annak aConvert.ToBoolean-nek mi értelme? Az (i % 2) == 0) önmagában egy logikai literál.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
válasz lakisoft #585 üzenetére
Pl ahogy az előző hozzászólásban írta Gregorius. //Ha win32 dll-ről van szó.
Vagy ha .net dll class libraryről van szó, akkor berakod a dll-t a referenciák közé, majd a dll namespace-ét beteszed a unsinggal, és látod a függvényt a típuson keresztül, vgay using nélkül namespace / típus v. példány/ függvénnyel hivatkozol rá.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
válasz lakisoft #588 üzenetére
De tudod is, hogy miről beszélsz vagy olvastál valahol valamit és leírtad? Tényleg kérdezem, nem izélés.
Az első mondatnak van értelme.
Van egy win32 dll-ed, akkor csinálhatsz egy .NET class libraryt (.net dll osztály), ami elvégzi a win32 dll-ből a szükséges függvények importálását, és innentől kezdve csak ezt a .net dll-t kell referenciaként hozzáadni.Ha saját magad írod a win32 dll-t, nem egy meglévőt használsz fel, akkor lehet szükség lib és include fájlokra, meg esetleg az sdk-ra, de ez nem tudom hogy jött ide.
Thank you to god for making me an atheist
-
Lortech
addikt
Arra gondolsz, hogy kivételnél oda tudsz ugrani a .NET-es osztály forrás nézetére és deguggolni ?
Ez tényleg komoly dolog, és sokaknak segítségére lehet.
De azért van még jópár fontosabb új feature:
WPF support, XAML designer, LINQ, C# 3.0, .NET 3.5, JS intellisense és debug, SQL Server 2008 támogatás, AJAX, css újítások és még sok más.Thank you to god for making me an atheist
-
Lortech
addikt
Persze, hogy a fájl elejétől fog olvasni, ha egyszer a cikluson belül nem használod fel az olvasáshoz a ciklus változót, meg semmi paramétert, hanem egyszerűen csak kiolvasol belőle. Igazából nem is értem, hogy gondoltad.
Sok megközeleítés lehetséges, pl
string s = File.ReadAllText(pathInfo);
Aztán a string Split metódusával egy string tömbre vágod \r\n vagy \n sorvégek mentén, és már tudsz hivatkozni a megfelelő sorra a tömbben. (ez akkor lehet megoldás, ha kis fájlról van szó)Vagy csinálsz két ciklust, az elsőben olvasol ReadLine-nal annyiszor, amennyivel eljutsz a kívánt sorpozícióba (közben a beolvasott sorokat eldobod) , a másikkal meg ténylegesen beolvasod a kívánt sorokat.
Vagy egy db ciklusban számolod, hány sort olvastál már be, és ha elérted a keresett sort, akkor fűzöd csak a richtextboxhoz az azutániakat.
stb.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
A richtextbox lines get propertyvel csak egy másolatot kapsz az eredeti tömbelemről. Így azt változtatva nem módosítja a szövegdoboz belső állapotát.
Az egész tömböt viszont felül tudod írni a már módosított tömbbel, pl:
string[] sorok = richTextBox1.Lines;
//n. sort átírod szovegre.
sorok[n] = szoveg;
richTextBox1.Lines = sorok;Thank you to god for making me an atheist
-
Lortech
addikt
-
Lortech
addikt
A .NET a technológia és a keretrendszer. C# egy programozási nyelv, amely gyakorlatilag egybeforrt a .NET-tel, mivel önmagában nincs sok értelme. A .NET technológiát felhasználva programozunk C#-ban. A Visual Studio pedig egy fejlesztői környezet, amely támogatja a .NET-es és natív alkalmazások fejlesztését, előbbit például C# nyelven.
Szándékosan nem a kérdéseidre próbáltam válaszolni egyenként, mert néhol értelmetlen, értelmezhetetlen volt számomra.
C# + .NET párossal könnyű, illetve inkább azt mondanám, hogy kényelmes GUI-t fejleszteni, ahogy az adatbázishátteret is kényelmes megírni, mert jó támogatás van hozzá a keretrendszerben.
Hozzáértőnek semmi sem bonyolult, egy Oracle adatbázis behúzása, adatbázis séma osztályok legenerálása jóesetben pár perc, de úgy, hogy nem ismered egyáltalán azt, amiben fejleszteni akarsz.. hát mindenesetre érdekes lesz.Thank you to god for making me an atheist
-
Lortech
addikt
Bármit megírsz C#-ban, azt a gyakorlatban .NET platformra írod (vagy épp monora, mindegy). A könyvben amikor le van írva egy példaprogram, az a .NET futtatórendszerre fog lefordulni a .NET keretrendszer felhasználásával. Mint mondtam, C# és a .NET gyakorlatilag elválaszthatatlanok, mert C#-ban .NET-es alkalmazásokat készítesz. (csűröm csavarom már háromféleképpen)
Az a könyv nem csak a C#-ról mint nyelvről szól, mert a nyelvi elemeken túl biztos, hogy ad egy képet a .NET platform alaposztályairól is. Nyilván ettől nem leszel .NET guru, de maga a nyelv elsajátítása is szükséges, nem beszélve a Visual studioról.
Nevem alatt találsz egy cikksorozatot - jutott ameddig jutott -, talán tud adni egy kezdőlöketet.Thank you to god for making me an atheist
-
Lortech
addikt
válasz atm*RefeeZ #660 üzenetére
A kérdés inkább az, miért szeretnéd tudni előre a fájl sorainak számát. Ha te állítod elő a fájlt, akkor egyszerűen beleírhatod egy meghatározott sorba, pl az elsőbe.
Több formot úgy tudsz egyidejűleg megjeleníteni, hogy példányosítasz egy form típusból és hívod a show vagy showdialog metódusát.Thank you to god for making me an atheist
-
Lortech
addikt
válasz atm*RefeeZ #669 üzenetére
SaveFileDialog svfd = new SaveFileDialog();
if (svfd.ShowDialog() == DialogResult.OK)
{}
Showdialog megnyitja a mentés párbeszédablakot, az if-hez tartozó utasításblokkra akkor esik a vezérlés, ha a user okézta az ablakot. Az if-en belül a svfd.Filename néven érheted el a dialógusban kiválasztott fájl nevét.
Az svfd.OpenFile() visszaad egy streamet, amibe tudsz írkálni az if-en belül.
A DialogResult-ból nem kell változó, ez egy enumeráció, így jó, ahogy írtam.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
Nevesített jelzőértéknek szoktam használni. Mondjuk van egy függvény, ami kétféleképpen működik, és átadsz paraméterként egy enum értéket, ami jelzi, hogy épp melyik kell.
enum algoritmus {buborek, quick, shell}
class {
void rendez(int[] tomb, algoritmus alg)
{
if (alg == algoritmus.buborek)
{...}
else if (alg== algoritmus.quick) {...}
...
}
...
rendez(szamok, algoritmus.quick);Megcsinálhatnád, hogy átadsz egy int-et (valójában az enum is castolható intté, 0-tól vannak sorszámozva a címkék, de szabályozhatod is a típusdefinícióban) , de akkor meg fejben kell tartani hívás helyén is meg a fogadó oldalon is..
Vagy persze lehet külön függvényeket is gyártani minderre, az a legtisztább, de a lényegét meg lehet érteni a példából.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
Na várjál.
Azt hiszem, ez szokott lenni a tankönyvi példa:
enum Het {hetfo, kedd, szerda, csutortok, pentek, szombat, vasarnap}Ekkor lesz egy Het nevű típusod. Ebből csinálhatsz változót, ami a Het.hetfo, kedd ... stb értékeket veheti fel. Ezzel azt csinálhatsz, amit akarsz, átadhatod paraméterként, összehasonlíthatod más Het típusú értékekkel, lekérheted a sorszámát az értéknek stb. Mondjuk átadhatod egy függvénynek, hogy milyen nap van ma, és az az értéktől függően csinál majd valamit. Átadhatnád számokként (0..6), vagy stringként is, de ez azért jó a számhoz képest, hogy az érték egyben a szöveges neve, ergó nem kell utánanézni, hogy melyik sorszám milyen szemantikával rendelkezik, illetve sztringhez képest azért jó, mert nem tudod elgépelni, illetve ha mégis, az fordítási idejű, szintaktikai hiba, nem szemantikai.
Kerestem egy példát.
[link]Igazából meg lehet lenni nélkül, de néha adja magát.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
Szerintem ezt akarta: flag f2 = (flag)5; és így tovább a többinél.
atm*RefeeZ: wtf is szless?
A formnak a FormClosing eseményére kéne írni egy eseménykezelőt. Ez a form bezárása előtt aktiválódik, mikor lefut, akkor jön a FormClosed.Thank you to god for making me an atheist
-
Lortech
addikt
válasz atm*RefeeZ #686 üzenetére
Menj a form designerre, jobb oldalt ott van a property window. Klikkelj a form címsorára a designeren. Ekkor prop. window-ban a form tulajdonságai lesznek. Ott kattints a villám ikonra. Megjelennek a form eseményei, kiválasztod a FormClosing-ot és dupla klikk rá. Ekkor létrehozza neked az eseménykezelő metódus vázát, és rá is köti az eseményre a designer.cs-ben.
Thank you to god for making me an atheist
-
Lortech
addikt
Windows Formsról volt szó..
WPF-nél az elem létrehozásánál az intellisense felsorolja az eseményeket is, villám ikonnal, és ha ráböksz akkor egyből fel is ajánlja, hogy create new event handler, a xaml mögötti c# kódban létre is jön a kezelő.
Pl írod, hogy <Button szőköz és itt dobja fel az intellisense a listát.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
válasz atm*RefeeZ #693 üzenetére
Kusztomizálni ( ) a controlokat a propertyjein keresztül tudod. Színek, háttér stb. Nyilván photoshopban rajzolgatott controlt nem fogja neked a visual studio megenni. Rajzolsz egy felületet és megadod háttérnek..
két újabb dolog érdekelne. az egyik, hogy meg lehet-e csinálni, hogy close()-nál ne fusson le ez a formclosing (gondolom nem lehet de hátha van valami beállítás ami figyeli,hogy csak x gombra kattintva jöjjön elő, amúgy meg megcsinálom máshogy,csak hátha van egyszerűbb módja mint amit én csinálnék)?
Már a kérdésből látszik, hogy valamit nem jól csinálsz, vagy valamivel nem vagy tisztában, mert ezeket megfelelő átgondolással ki lehet kerülni.
Thank you to god for making me an atheist
-
Lortech
addikt
válasz atm*RefeeZ #695 üzenetére
Eleve mondjuk nem windows forms, wpf alkalmazásokkal kéne kezdeni, meg event handlereket gyártani, mikor vsz. fogalmatok sincs mi is az az event, meg delegate, mi miért van úgy, ahogy, csak kliketi klikk aztán lesz valami belőle. Ez nem programozás, hanem ilyen random gányolás.
Nem fika (max az oktatóitok felé) akarna lenni, de tényleg csak szilárd alapokkal engednék valakit windows forms projekt közelébe.Nincs semmi trükk, ha beraksz valamit a form_closingba, akkor az le fog futni ha bezárod a formot (akár csillaggal, akár tálcán). Nyilván máshogy kell megoldani, de ehhez látni kéne, hogy mit akarsz csinálni, és milyen kóddal.
Thank you to god for making me an atheist
-
Lortech
addikt
Az lehet, hogy tudod mi a szó, de technikailag is tudod, hogy mit jelent .NET-ben egy event? Tudod mi az a callback, delegate, multicast delegate, leiratkozás, feliratkozás, tudod, hogy hogy vannak ezek megvalósítva, hogy működnek?
nem gondoltam volna, hogy csak ilyen XAML gányolással lehet elővarázsolni... kicsit fapadosnak tűnik nekem.
Mi a gányolás ebben?! Semmi. Meg "elővarázsolni"? Nincs ebben semmi varázslat, ha ugyanolyan támogatás lenne eventekre mint a windows forms esetén, akkor is ugyanezt a kódot generálná, mint amit így kb. kemény két billentyűleütéssel hozzáadsz.Thank you to god for making me an atheist
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Creative Hybrid Pro Classic (Egyszer kipróbált, garanciális)
- iPhone 15 Pro 128gb Natúr Titanium, bontatlan, független
- ÚJ Apple Watch Ultra 2 GPS + Cellular 49mm - titántok, alpesi szíj
- 8/16GB memoriák
- APPLE MacBook Air 2020 13" Retina - M1 / 8GB / 256 GB SSD / MAGYAR / 96% akku, 81 ciklus / Garancia