Приведение строки к определенному типу - Visual Basic .NET
Формулировка задачи:
В четвертой процедуре в коментариях задан вопрос. Прошу помочь разобраться.
Public Class Dice
Dim res(3) As Integer
Dim p1, p2, pt1, pt2 As Integer
Private Sub Dice_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Randomize()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
compArray()
drawPic()
Proverka()
Winner()
totalCount()
End Sub
Private Function Chance() 'Рандомчик 1-6
Dim u, l As Integer
Dim rV As Double
u = 6
l = 1
rV = CInt(Math.Floor((u - l + 1) * Rnd())) + l
Return rV
End Function
Private Sub compArray() 'Генерация массива
For i = 0 To 3
res(i) = Chance()
Next
End Sub
Private Sub drawPic() 'Отрисовка картинок, в зависимости результата генерации массива
'For i = 1 To 4 ]Собственно, почему не работает ? Постоянно расписывать для каждого элемента...
'PictureBox(i).Image = My.Resources.D(i-1) ]А если кубиков будет 12, 24....
'Next ]Подскажите, как привести строку к нужному типу, или какой метод есть в VB, чтобы
'PictureBox1.Image = My.Resources.D + res(0).ToString ]обрабатывать именно такие условия. И по возможности, объяснить в 2-3 словах.
'PictureBox1.Image = My.Resources.D1 ]Также ниже есть Private Sub Button2_Click - Label1.Text = 0; Label1.Visible = True
'PictureBox1.Image = CType(("My.Resources.D" + res(0).ToString), System.Drawing.Bitmap) ]
PictureBox1.ImageLocation = Application.StartupPath & "\Resources\D" + res(0).ToString + ".jpg"
PictureBox2.ImageLocation = Application.StartupPath & "\Resources\D" + res(1).ToString + ".jpg"
PictureBox3.ImageLocation = Application.StartupPath & "\Resources\D" + res(2).ToString + ".jpg"
PictureBox4.ImageLocation = Application.StartupPath & "\Resources\D" + res(3).ToString + ".jpg"
End Sub
Private Sub Winner() 'Определение победителя
Dim a, b As Integer
a = (res(0) + res(1))
b = (res(2) + res(3))
If a > b Then
ListBox1.Items.Add("Победил первый игрок: " + a.ToString + "/" + b.ToString)
p1 = 1
p2 = 0
ElseIf a = b Then
ListBox1.Items.Add("Ничья: " + a.ToString + "/" + b.ToString)
p1 = 0
p2 = 0
ElseIf a < b Then
ListBox1.Items.Add("Победил второй игрок: " + a.ToString + "/" + b.ToString)
p1 = 0
p2 = 1
End If
End Sub
Private Sub totalCount() 'Счетчик
pt1 = pt1 + p1
pt2 = pt2 + p2
LabelP1.Text = pt1
LabelP2.Text = pt2
End Sub
Private Sub Proverka() 'Кнопка с цифрами к картинкам
Label1.Text = res(0)
Label2.Text = res(1)
Label3.Text = res(2)
Label4.Text = res(3)
Label5.Text = res(0) + res(1)
Label6.Text = res(2) + res(3)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 'Кнопка сброса
pt1 = 0
pt2 = 0
LabelP1.Text = pt1
LabelP2.Text = pt2
Label1.Text = 0
Label2.Text = 0
Label3.Text = 0
Label4.Text = 0
Label5.Text = 0
Label6.Text = 0
PictureBox1.ImageLocation = Application.StartupPath & "\Resources\D7.jpg"
PictureBox2.ImageLocation = Application.StartupPath & "\Resources\D7.jpg"
PictureBox3.ImageLocation = Application.StartupPath & "\Resources\D7.jpg"
PictureBox4.ImageLocation = Application.StartupPath & "\Resources\D7.jpg"
ListBox1.Items.Clear()
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
Label5.Visible = True
Label6.Visible = True
'Button3.Visible = True
Else
Label1.Visible = False
Label2.Visible = False
Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label6.Visible = False
'Button3.Visible = False
End If
End Sub
Public p As New Object
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 'Кнопка проверки
Dim i As Integer = 1
p = CType("PictureBox" + i.ToString + ".ImageLocation", Object)
MsgBox(p)
p = Application.StartupPath & "\Resources\D7.jpg"
MsgBox(p)
'MsgBox(PictureBox1.ImageLocation)
End Sub
End ClassРешение задачи: «Приведение строки к определенному типу»
textual
Листинг программы
s.Image = My.Resources.ResourceManager.GetObject("D" & M-1)