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 ClassKyllä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 SubTuohan 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.