Hei
Miten tällaisen koodin voisi näppäillä näppärämmin?
'Formilla 6 buttonia ja textboxeja Public Class Form1 Structure rakenne1 Dim arvo1 As Integer Dim arvo2 As Integer Dim arvo3 As String Dim arvo4 As Byte Dim arvo5 As Byte Dim arvo6 As Boolean Dim arvo7 As String End Structure Dim muuttuja1, muuttuja2, muuttuja3, muuttuja4, muuttuja5, muuttuja6 As rakenne1 Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _ Button1.Click, _ Button2.Click, _ Button3.Click, _ Button4.Click, _ Button5.Click, _ Button6.Click Dim nappi As Button = sender Dim NapinNumero As Integer = Strings.Right(nappi.Name, 1) ' Console.WriteLine(NapinNumero) Select Case NapinNumero Case 1 muuttuja1.arvo1 = TextBox1.Text muuttuja1.arvo2 = TextBox2.Text muuttuja1.arvo3 = TextBox3.Text muuttuja1.arvo4 = TextBox4.Text muuttuja1.arvo5 = TextBox5.Text muuttuja1.arvo6 = False muuttuja1.arvo7 = TextBox7.Text Case 2 muuttuja2.arvo1 = TextBox1.Text muuttuja2.arvo2 = TextBox2.Text muuttuja2.arvo3 = TextBox3.Text muuttuja2.arvo4 = TextBox4.Text ' ' ' Case 3 muuttuja3.arvo1 = TextBox1.Text muuttuja3.arvo2 = TextBox2.Text ' ' Case 4 muuttuja4.arvo1 = TextBox1.Text ' ' Case 5 ' ' Case 6 ' End Select End Sub End Class
Kyllähän sen noinkin tekee, mutta jos buttoneita enempi tai muuttujien rakenne monimutkaisempi, niin menee näpytellessä aikaa ja koodista tulee tarpeettoman pitkä.
Jokin tällainen ratkaisu olisi huomattavasti näppärämpi
Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _ Button1.Click, _ Button2.Click, _ Button3.Click, _ Button4.Click, _ Button5.Click, _ Button6.Click Dim nappi As Button = sender Dim NapinNumero As Integer = Strings.Right(nappi.Name, 1) ' Console.WriteLine(NapinNumero) muuttuja(NapinNumero).arvo1 = TextBox1.Text muuttuja(NapinNumero).arvo2 = TextBox2.Text muuttuja(NapinNumero).arvo3 = TextBox3.Text muuttuja(NapinNumero).arvo4 = TextBox4.Text muuttuja(NapinNumero).arvo5 = TextBox5.Text muuttuja(NapinNumero).arvo6 = False muuttuja(NapinNumero).arvo7 = TextBox7.Text End Sub
Tuohan ei tietenkään toimi, mutta löytyykö tuohon jotain "helpotusta"?
novice kirjoitti:
Tuohan ei tietenkään toimi, mutta löytyykö tuohon jotain "helpotusta"?
Siis miksi muka ei toimi?
Tietenkin muuttujan määrittely pitää olla
Dim muuttuja(6) As rakenne1
mutta koska se ei ollut osa tuota pätkää, niin sillä perusteella ei voi sanoa että tuossa pätkässä olisi vikaa.
No heippa taas!
Auttaisikohan esim. Valium tai jokin vastaava..?
Kyllähän se Valium auttaisi...
Aihe on jo aika vanha, joten et voi enää vastata siihen.