Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


5 Tärningar i vb.net

Postades av 2005-02-16 14:28:26 - Jonatan Moritz, i forum vb.net, Tråden har 5 Kommentarer och lästs av 550 personer

Jag har ett litet problem.
Jag har en väldigt lång kod för att kasta tärningar och spara dem i en matris.



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
GroupBox1.Enabled = True
PictureBox1.Visible = True
PictureBox2.Visible = True
PictureBox3.Visible = True
PictureBox4.Visible = True
PictureBox5.Visible = True
If index = 2 Then
Button1.Enabled = False
End If
antal_kast(index, 0) = 1
index = index + 1



If CheckBox1.Checked = True Then


Else
t1 = Int((1 + 6 * Rnd()))
Select Case t1
Case 1
PictureBox1.Image() = System.Drawing.Image.FromFile("1.jpg")
Case 2
PictureBox1.Image() = System.Drawing.Image.FromFile("2.jpg")
Case 3
PictureBox1.Image() = System.Drawing.Image.FromFile("3.jpg")
Case 4
PictureBox1.Image() = System.Drawing.Image.FromFile("4.jpg")
Case 5
PictureBox1.Image() = System.Drawing.Image.FromFile("5.jpg")
Case 6
PictureBox1.Image() = System.Drawing.Image.FromFile("6.jpg")
End Select

End If
' Om checkbox är checkad så händer ingenting
If CheckBox2.Checked = True Then
Else
'Annars randomar den tärningen
t2 = Int((1 + 6 * Rnd()))
Select Case t2
Case 1
PictureBox2.Image() = System.Drawing.Image.FromFile("1.jpg")
Case 2
PictureBox2.Image() = System.Drawing.Image.FromFile("2.jpg")
Case 3
PictureBox2.Image() = System.Drawing.Image.FromFile("3.jpg")
Case 4
PictureBox2.Image() = System.Drawing.Image.FromFile("4.jpg")
Case 5
PictureBox2.Image() = System.Drawing.Image.FromFile("5.jpg")
Case 6
PictureBox2.Image() = System.Drawing.Image.FromFile("6.jpg")
End Select

End If

' Om checkbox är checkad så händer ingenting
If CheckBox3.Checked = True Then
Else
'Annars randomar den tärningen
t3 = Int((1 + 6 * Rnd()))
Select Case t3
Case 1
PictureBox3.Image() = System.Drawing.Image.FromFile("1.jpg")
Case 2
PictureBox3.Image() = System.Drawing.Image.FromFile("2.jpg")
Case 3
PictureBox3.Image() = System.Drawing.Image.FromFile("3.jpg")
Case 4
PictureBox3.Image() = System.Drawing.Image.FromFile("4.jpg")
Case 5
PictureBox3.Image() = System.Drawing.Image.FromFile("5.jpg")
Case 6
PictureBox3.Image() = System.Drawing.Image.FromFile("6.jpg")
End Select

End If

' Om checkbox är checkad så händer ingenting
If CheckBox4.Checked = True Then
Else
'Annars randomar den tärningen
t4 = Int((1 + 6 * Rnd()))
Select Case t4
Case 1
PictureBox4.Image() = System.Drawing.Image.FromFile("1.jpg")
Case 2
PictureBox4.Image() = System.Drawing.Image.FromFile("2.jpg")
Case 3
PictureBox4.Image() = System.Drawing.Image.FromFile("3.jpg")
Case 4
PictureBox4.Image() = System.Drawing.Image.FromFile("4.jpg")
Case 5
PictureBox4.Image() = System.Drawing.Image.FromFile("5.jpg")
Case 6
PictureBox4.Image() = System.Drawing.Image.FromFile("6.jpg")
End Select

End If
' Om checkbox är checkad så händer ingenting
If CheckBox5.Checked = True Then
Else
'Annars randomar den tärningen
t5 = Int((1 + 6 * Rnd()))
Select Case t5
'Om det blir 1 så visar den bild 1 etc.
Case 1
PictureBox5.Image() = System.Drawing.Image.FromFile("1.jpg")
Case 2
PictureBox5.Image() = System.Drawing.Image.FromFile("2.jpg")
Case 3
PictureBox5.Image() = System.Drawing.Image.FromFile("3.jpg")
Case 4
PictureBox5.Image() = System.Drawing.Image.FromFile("4.jpg")
Case 5
PictureBox5.Image() = System.Drawing.Image.FromFile("5.jpg")
Case 6
PictureBox5.Image() = System.Drawing.Image.FromFile("6.jpg")
End Select

End If

Finns det något sätt att förminska denna kod?


Svara

Sv: 5 Tärningar i vb.net

Postades av 2005-02-16 14:45:47 - Per Persson

Nu var det länge sedan jag använde VB, men jag vill minnas att man kan ge kontroller "matrisnamn", dvs PictureBox(1), ..., PictureBox(5) i stället för PictureBox1, ..., PictureBox5 samt CheckBox(1), ..., CheckBox(5) i stället för CheckBox1, ..., CheckBox5.

I så fall borde du kunna förenkla koden avsevärt.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        GroupBox1.Enabled = True
        For i = 1 To 5
               PictureBox(i).Visible = True
        End For

        If index = 2 Then
            Button1.Enabled = False
        End If

        antal_kast(index, 0) = 1
        index = index + 1

        For i = 1 To 5
               If Not CheckBox(i).Checked Then
                       t = Int((1 + 6 * Rnd()))
                       PictureBox(i).Image = System.Drawing.Image.FromFile(t & ".jpg")
               End If
        End For


Svara

Sv:5 Tärningar i vb.net

Postades av 2005-02-17 13:20:23 - Jonatan Moritz

Det gick inte :(


Svara

Sv: 5 Tärningar i vb.net

Postades av 2005-02-17 14:36:05 - Per Persson

I VB icke-.Net gick det att ha "arraynamn" på kontrollerna, men tydligen inte i .Net.

Exempel från icke-.Net:
http://www.officecomputertraining.com/vbtutorial/tutpages/page22.asp#control

Du kan läsa om hur man gör i stället i .Net:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbconcontrolarraychangesinvisualbasicnet.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/controlarrays.asp


Svara

Sv: 5 Tärningar i vb.net

Postades av 2005-02-17 14:57:28 - Johan Bovin

Varför inte göra varje tärning som en egen usercontrol. Sen t.ex. ha en metod som heter typ Roll eller nåt..
Då skulle du bara behöva ha typ dice1.Roll() istllet för alla din kontroller med att sätta dina bilder etc...

dessutom är

If CheckBox4.Checked = True Then
        Else

Kanske inte så snyggt utan du kan istället göra
If Not CheckBox4.Checked  Then


Svara

Sv:5 Tärningar i vb.net

Postades av 2005-02-19 12:50:53 - Per-Olof Ohlsson

VB.Net har ju som nämnts inte controlarrayer, vilket kan vara störande ibland.
Men istället kan man äntligen skapa dessa dynamiskt på vanligt sätt med new utan att behöva en baskontroll eller createobject.

Skapa en array av Checkboxar och en av Pictureboxar.
Fyll dessa sedan antingen med new och placera ut dem i kod eller designa formen på vanligt sätt och tilldela arrayerna referenser till kontrollerna.

Sedan går själva tärningsslagandet enkelt i en liten loop.

<code>
Public Class Form1
Inherits System.Windows.Forms.Form
Private chkDice(4) As CheckBox
Private picDice(4) As PictureBox
Private WithEvents cmdRoll As Button
Const cDynCtrls As Boolean = True

#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

If cDynCtrls Then
' Skapa kontrollerna dynamiskt
Dim iI As Integer

For iI = 0 To 4
chkDice(iI) = New CheckBox
picDice(iI) = New PictureBox
chkDice(iI).Parent = Me
picDice(iI).Parent = Me
chkDice(iI).Left = 20
chkDice(iI).Top = 20 + iI * 80
chkDice(iI).Text = iI + 1
picDice(iI).Height = 50
picDice(iI).Width = 50
picDice(iI).Left = 20
picDice(iI).Top = chkDice(iI).Top + 25
picDice(iI).BorderStyle = BorderStyle.Fixed3D
Next
cmdRoll = New Button
cmdRoll.Parent = Me
cmdRoll.Left = 20
cmdRoll.Top = picDice(4).Top + picDice(4).Height + 10
cmdRoll.Text = "Roll"
Else
' eller använd statiskt skapade kontroller
chkDice(0) = CheckBox1
chkDice(1) = CheckBox2
chkDice(2) = CheckBox3
chkDice(3) = CheckBox4
chkDice(4) = CheckBox5
picDice(0) = PictureBox1
picDice(1) = PictureBox2
picDice(2) = PictureBox3
picDice(3) = PictureBox4
picDice(4) = PictureBox5
End If
End Sub
.
.
.
.
Private Sub Roll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdRoll.Click, Button1.Click
Dim iI As Integer
Dim iRes As Integer

For iI = 0 To 4
If Not chkDice(iI).Checked Then
iRes = Int((1 + 6 * Rnd()))
picDice(iI).Image() = System.Drawing.Image.FromFile(iRes.ToString & ".jpg")
End If
Next
End Sub
</code>


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 882
27 965
271 776
941
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies