|
-
Jan 27th, 2012, 08:05 AM
#1
Thread Starter
Member
[RESOLVED] Shorter code
Hello, how i can make this code shorter:
Code:
Dim reminderday As Integer = 13
Select Case reminderday
Case 1
D1.BackgroundImage = My.Resources.Reminder
Label1.ForeColor = Color.Yellow
Case 2
D2.BackgroundImage = My.Resources.Reminder
Label2.ForeColor = Color.Yellow
Case 3
D3.BackgroundImage = My.Resources.Reminder
Label3.ForeColor = Color.Yellow
Case 4
D4.BackgroundImage = My.Resources.Reminder
Label4.ForeColor = Color.Yellow
Case 5
D5.BackgroundImage = My.Resources.Reminder
Label5.ForeColor = Color.Yellow
Case 6
D6.BackgroundImage = My.Resources.Reminder
Label6.ForeColor = Color.Yellow
Case 7
D7.BackgroundImage = My.Resources.Reminder
Label7.ForeColor = Color.Yellow
Case 8
D8.BackgroundImage = My.Resources.Reminder
Label8.ForeColor = Color.Yellow
Case 9
D9.BackgroundImage = My.Resources.Reminder
Label9.ForeColor = Color.Yellow
Case 10
D10.BackgroundImage = My.Resources.Reminder
Label10.ForeColor = Color.Yellow
Case 11
D11.BackgroundImage = My.Resources.Reminder
Label11.ForeColor = Color.Yellow
Case 12
D12.BackgroundImage = My.Resources.Reminder
Label12.ForeColor = Color.Yellow
Case 13
D13.BackgroundImage = My.Resources.Reminder
Label13.ForeColor = Color.Yellow
Case 14
D14.BackgroundImage = My.Resources.Reminder
Label14.ForeColor = Color.Yellow
Case 15
D15.BackgroundImage = My.Resources.Reminder
Label15.ForeColor = Color.Yellow
Case 16
D16.BackgroundImage = My.Resources.Reminder
Label16.ForeColor = Color.Yellow
Case 17
D17.BackgroundImage = My.Resources.Reminder
Label17.ForeColor = Color.Yellow
Case 18
D18.BackgroundImage = My.Resources.Reminder
Label18.ForeColor = Color.Yellow
Case 19
D19.BackgroundImage = My.Resources.Reminder
Label19.ForeColor = Color.Yellow
Case 20
D20.BackgroundImage = My.Resources.Reminder
Label20.ForeColor = Color.Yellow
Case 21
D21.BackgroundImage = My.Resources.Reminder
Label21.ForeColor = Color.Yellow
Case 22
D22.BackgroundImage = My.Resources.Reminder
Label22.ForeColor = Color.Yellow
Case 23
D23.BackgroundImage = My.Resources.Reminder
Label23.ForeColor = Color.Yellow
Case 24
D24.BackgroundImage = My.Resources.Reminder
Label24.ForeColor = Color.Yellow
Case 25
D25.BackgroundImage = My.Resources.Reminder
Label25.ForeColor = Color.Yellow
Case 26
D26.BackgroundImage = My.Resources.Reminder
Label26.ForeColor = Color.Yellow
Case 27
D27.BackgroundImage = My.Resources.Reminder
Label27.ForeColor = Color.Yellow
Case 28
D28.BackgroundImage = My.Resources.Reminder
Label28.ForeColor = Color.Yellow
Case 29
D29.BackgroundImage = My.Resources.Reminder
Label29.ForeColor = Color.Yellow
Case 30
D30.BackgroundImage = My.Resources.Reminder
Label30.ForeColor = Color.Yellow
End Select
I tried this:
Code:
D & reminderday.BackgroundImage = My.Resources.Reminder
But this not worked. ;/
Maybe i should to somehow make an array list of all 30 Picture boxes?
-
Jan 27th, 2012, 08:33 AM
#2
Re: Shorter code
Try this to give you an idea:
Put a text box on a form, call it txtDay.
Put a button on the form, call it btnGo.
Use this code:
Code:
Public Class Form1
Dim colors(0 To 4) As Color
Dim labels(0 To 4) As Label 'create an array of labels at run time
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
For i = 0 To 4
labels(i) = New Label
labels(i).AutoSize = False
labels(i).BorderStyle = BorderStyle.FixedSingle
labels(i).Height = 50
labels(i).Width = 50
labels(i).Top = 20
labels(i).Left = (i * 50) + 10
labels(i).BackColor = Color.White
labels(i).Visible = True
Me.Controls.Add(labels(i))
Next
colors(0) = Color.Black
colors(1) = Color.Yellow
colors(2) = Color.Blue
colors(3) = Color.Green
colors(4) = Color.Red
End Sub
Private Sub btnGo_Click(sender As System.Object, e As System.EventArgs) Handles btnGo.Click
labels(txtDay.Text - 1).BackColor = colors(txtDay.Text - 1)
End Sub
End Class
Put a number (1 thru 5) into the text box and click the button.
-
Jan 27th, 2012, 09:04 AM
#3
Fanatic Member
Re: Shorter code
You can get controls by their names aswell, by using Me.Controls.
Untested example:
vb.net Code:
Dim control1 As PictureBox = Me.Control.Find("D" & reminderday, false)(0)
Last edited by Zeelia; Jan 27th, 2012 at 09:08 AM.
-
Jan 27th, 2012, 09:11 AM
#4
Thread Starter
Member
Re: Shorter code
 Originally Posted by Zeelia
You can get controls by their names aswell, by using Me.Controls.
Untested example:
vb.net Code:
Dim control1 As PictureBox = Me.Control.Find("D" & reminderday, false)(0)
Thank you very much!!
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|