Moi,
Olen nyt aloittelemassa tuota C# ohjelmointia, enkä pääse yli niinkin yksinkertaisesta ongelmasta kun : Minun pitäisi tulostaa luku BUTTON- olioon. Eli kun painetaan nappia niin luvun napissa (.TEXT) pitäisi kasvaa portaittain 1 :llä.
Olen ohjelmoinut J :lla pitkään, mutta nuo opit eivät auta pätkääkään...
Miten siis tuon voisin tehdä...
Super Tyhmä Kyssäri
3
358
Vastaukset
- Koodin Vääntäjä
Tee Windows-Form, lisää sille button (tässä button1) ja kaksoiklikkaa buttonia jotta saat sille oletusviestin (Click) käsuittelijän. [nämä kai tiesitkin, mutta varmuuden vuoksi...]
Tässä esimerkki buttonin käsittelijäksi. Yritetään ensin lukea Text-propertyn nykyinen arvo integer muuttujaan, jos se ei ole numeerinen niin lennetään Exceptioniin, asetetaan siellä alkuarvoksi nolla.
Sitten vaan kasvatetaan lukua ja viedään se tekstimuotoisena buttonin Text-propertyyn.
--- snip ----
private void button1_Click(object sender, System.EventArgs e)
{
int iLuku = -1;
try
{
iLuku = Int32.Parse( this.button1.Text );
}
catch (Exception)
{
iLuku = 0;
}
this.button1.Text = ( iLuku).ToString();
}
--- snip ----- taavetti 19999999
Kiitos,
Entäs jos, minulla on 2000 (esim.) nappia ja nämä napit ovat taulukossa (kaksiulotteinen).
Miten olisi helpoin tehdä vastaava ohjelma. Tietenkään en halua kirjoittaa koodia jokaiseen nappiin erikseen vaan haluaisin käyttää jotain kehittyneempää ratkaisua...
Miten ottaisin napin painalluksen kiinni ja saisin tiedon napin 'koordinaateista'/indekseistä tietooni. Ja lisäksi jokainen napin painallus kasvattaa jokaisen napin omaa laskuria (.TEXT)?
Minulla on pieni projekti meneillään ja tuohon se tyssää jos en keksi ratkaisua piakkoin :-) - Koodin Vääntäjä
taavetti 19999999 kirjoitti:
Kiitos,
Entäs jos, minulla on 2000 (esim.) nappia ja nämä napit ovat taulukossa (kaksiulotteinen).
Miten olisi helpoin tehdä vastaava ohjelma. Tietenkään en halua kirjoittaa koodia jokaiseen nappiin erikseen vaan haluaisin käyttää jotain kehittyneempää ratkaisua...
Miten ottaisin napin painalluksen kiinni ja saisin tiedon napin 'koordinaateista'/indekseistä tietooni. Ja lisäksi jokainen napin painallus kasvattaa jokaisen napin omaa laskuria (.TEXT)?
Minulla on pieni projekti meneillään ja tuohon se tyssää jos en keksi ratkaisua piakkoin :-)Liitä kaikkiin buttoneihin sama Click-viestin käsittelijä (joko ohjelmallisesti katsomalla mallia Windows Form Designer generated koodista) tai tekemällä yhden käsittelijän ja liittämällä sen kaikkiin muihin.
Click-eventissä saat selville napin jota painettiin, sen kertoo ensimmäinen parametri eli object sender.
...
Button btn = (Button)sender;
if ( btn != null )
...
btn.Text = ( iLuku).ToString();
...
Jotkut ohjelmoivatkin .NET:issä aina noin, eli selvittävät aina lähettävän objektin senderistä. Minä käytän yleensä hyväkseni sitä tietoa että tiedän kuka sender on koska olen itse liittänyt käsittelijän juuri siihen (ei tarvita turhia castauksia). Silloin kun sama funktio käsittelee usemman objektin viestit tuota tapaa on pakko käyttää.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Virkamiehille tarvitaan tuntuvat palkankorotukset
Naistenpäivänä on syytä muistuttaa, että virkamiehen euro on vain 80 senttiä. Palkat tulee saattaa samalle tasolle yksi403791Riikka Purran kaudella nousi bensan hinta yli 2 euron
Muistatteko kuinka edellisen vasemmistohallituksen aikana, ns. Marinin aikakaudella, bensiiniä sai 1,3 euron litrahinnal373387- 692998
Olisipa saanut sinuun
Tutustua paremmin. Harmi että aloin lopulta jännittämään kun näytit tunteesi niin voimakkaasti ja lähestyit niin voimaak912850- 351848
Mitäs nyt sijoittajat?
Pörssit laskevat maailmalla Iranin sodan takia ja muutenkin ovat olleet Trumpin vallan alla epävarmat. Ainoa, mikä on no841837- 241679
- 281607
- 311602
Olisitpa se hellä
Ja herkkä minkä kuvan sain sinusta irl. Haluaisin että elämässäni olisi sellainen joka arvostaa minua juuri sellaisena k231584