Hallo und guten Tag,
ich hoffe, ich habe das Thema in der richtigen Kategorie erstellt. Erst vor ein paar Wochen habe ich mit Visual Basic begonnen, eigentlich komme ich aus der "Swift-Welt".
Ich habe folgendes Problem:
Erstellt wurde von mir ein kleines Programm zu Testzwecken, um die Sprache besser kennenzulernen.
Zur Laufzeit des Programmes werden folgende Elemente nicht mehr angezeigt:
Spoiler anzeigen
Danke für euere Hilfe.
##########
hat sich erledigt
Post wiederhergestellt ~VaporiZed
ich hoffe, ich habe das Thema in der richtigen Kategorie erstellt. Erst vor ein paar Wochen habe ich mit Visual Basic begonnen, eigentlich komme ich aus der "Swift-Welt".
Ich habe folgendes Problem:
Erstellt wurde von mir ein kleines Programm zu Testzwecken, um die Sprache besser kennenzulernen.
Zur Laufzeit des Programmes werden folgende Elemente nicht mehr angezeigt:
- linienstil
- fuellstil
- sowie die linien- und Fuellfarbe
VB.NET-Quellcode
- Imports System
- Imports System.Drawing
- Imports System.Windows.Forms
- Public Class frmSpielerei
- Private zeichenflaeche As Graphics
- Private linienfarbe As Color
- Private hintergrundfarbe As Color
- Private bereich As Rectangle
- Private bereichReferenz As Rectangle
- Private linienstil As Drawing2D.DashStyle() = {
- Drawing2D.DashStyle.Dash,
- Drawing2D.DashStyle.DashDot,
- Drawing2D.DashStyle.DashDotDot,
- Drawing2D.DashStyle.Dot,
- Drawing2D.DashStyle.Solid}
- Private fuellstil As Drawing2D.HatchStyle() = {
- Drawing2D.HatchStyle.BackwardDiagonal,
- Drawing2D.HatchStyle.Cross,
- Drawing2D.HatchStyle.DottedGrid,
- Drawing2D.HatchStyle.ForwardDiagonal,
- Drawing2D.HatchStyle.Sphere,
- Drawing2D.HatchStyle.Vertical,
- Drawing2D.HatchStyle.Wave,
- Drawing2D.HatchStyle.ZigZag}
- Private Sub frmSpielerei_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- 'Linienfarbe schwarz setzen
- linienfarbe = Color.Black
- hintergrundfarbe = Color.Black
- For Each element As Drawing2D.DashStyle In linienstil
- listBoxLinieStil.Items.Add("")
- Next
- For Each element As Drawing2D.HatchStyle In fuellstil
- listBoxHintergrundMuster.Items.Add("")
- Next
- 'Referenz auf die Zeichenfläche des Panels setzen
- zeichenflaeche = Panel1.CreateGraphics()
- End Sub
- Private Sub buttonStart_Click(ByVal sender As Object, ByVal e As EventArgs)
- Dim groesse As Integer = 0
- Dim stift As Pen = New Pen(linienfarbe)
- Dim pinsel As SolidBrush = New SolidBrush(hintergrundfarbe)
- stift.Width = Convert.ToInt32(numericUpDownLinieStaerke.Value)
- bereich = Panel1.ClientRectangle
- bereichReferenz = Panel1.ClientRectangle
- Dim wiederholung As Integer = Convert.ToInt32(NumericUpDownWdhlg.Value)
- Dim geschwindigkeit As Integer = Convert.ToInt32(NumericUpDownGeschw.Value) * 10
- Select Case trackBar1.Value
- Case 1
- groesse = 125
- Case 2
- groesse = 100
- Case 3
- groesse = 75
- End Select
- If listBoxLinieStil.SelectedIndex >= 0 Then stift.DashStyle = linienstil(listBoxLinieStil.SelectedIndex)
- If radioButtonKreis.Checked = True Then
- If radioButtonHintergrundOhne.Checked = True Then
- bereich.Width = Panel1.ClientRectangle.Width - (groesse * 2)
- bereich.Height = Panel1.ClientRectangle.Height - (groesse * 2)
- bereich.Location = New Point(Panel1.ClientRectangle.Left + groesse, Panel1.ClientRectangle.Top + groesse)
- If NumericUpDownWdhlg.Value >= 1 AndAlso NumericUpDownGeschw.Value >= 1 Then
- For durchlauf As Integer = 0 To CInt(NumericUpDownWdhlg.Value - 1)
- While bereich.Width < bereichReferenz.Width
- bereich.Width = bereich.Width + 10
- bereich.Height = bereich.Height + 10
- bereich.Location = New Point(bereich.Left - 5, bereich.Top - 5)
- zeichenflaeche.DrawEllipse(stift, bereich)
- System.Threading.Thread.Sleep(geschwindigkeit)
- zeichenflaeche.Clear(Panel1.BackColor)
- End While
- While bereich.Width > groesse
- bereich.Width = bereich.Width - 10
- bereich.Height = bereich.Height - 10
- bereich.Location = New Point(bereich.Left + 5, bereich.Top + 5)
- zeichenflaeche.DrawEllipse(stift, bereich)
- System.Threading.Thread.Sleep(geschwindigkeit)
- zeichenflaeche.Clear(Panel1.BackColor)
- End While
- Next
- ElseIf NumericUpDownWdhlg.Value >= 1 AndAlso numericUpDownGeschw.Value = 0 Then
- MessageBox.Show("Bitte legen Sie die Geschwindigkeit fest.")
- ElseIf NumericUpDownWdhlg.Value = 0 AndAlso numericUpDownGeschw.Value >= 1 Then
- MessageBox.Show("Bitte legen Sie die Wiederhohlungen fest")
- Else
- zeichenflaeche.DrawEllipse(stift, bereich)
- End If
- End If
- If radioButtonHintergrundFarbe.Checked = True Then zeichenflaeche.FillEllipse(pinsel, Panel1.ClientRectangle.Left + groesse, Panel1.ClientRectangle.Top + groesse, Panel1.ClientRectangle.Width - (groesse * 2), Panel1.ClientRectangle.Height - (groesse * 2))
- If radioButtonHintergrundMuster.Checked = True AndAlso listBoxHintergrundMuster.SelectedIndex >= 0 Then
- Dim musterPinsel As System.Drawing.Drawing2D.HatchBrush = New System.Drawing.Drawing2D.HatchBrush(fuellstil(listBoxHintergrundMuster.SelectedIndex), stift.Color, Color.White)
- zeichenflaeche.FillEllipse(musterPinsel, Panel1.ClientRectangle.Left + groesse, Panel1.ClientRectangle.Top + groesse, Panel1.ClientRectangle.Width - (groesse * 2), Panel1.ClientRectangle.Height - (groesse * 2))
- End If
- End If
- If radioButtonRechteck.Checked = True Then
- If radioButtonHintergrundOhne.Checked = True Then
- If NumericUpDownWdhlg.Value >= 1 AndAlso numericUpDownGeschw.Value >= 1 Then
- bereich.Width = Panel1.ClientRectangle.Width - (groesse * 2)
- bereich.Height = Panel1.ClientRectangle.Height - (groesse * 2)
- bereich.Location = New Point(Panel1.ClientRectangle.Left + groesse, Panel1.ClientRectangle.Top + groesse)
- For durchlauf As Integer = 0 To CInt(NumericUpDownWdhlg.Value - 1)
- While bereich.Width < bereichReferenz.Width
- bereich.Width = bereich.Width + 10
- bereich.Height = bereich.Height + 10
- bereich.Location = New Point(bereich.Left - 5, bereich.Top - 5)
- zeichenflaeche.DrawRectangle(stift, bereich)
- System.Threading.Thread.Sleep(geschwindigkeit)
- zeichenflaeche.Clear(Panel1.BackColor)
- End While
- While bereich.Width > groesse
- bereich.Width = bereich.Width - 10
- bereich.Height = bereich.Height - 10
- bereich.Location = New Point(bereich.Left + 5, bereich.Top + 5)
- zeichenflaeche.DrawRectangle(stift, bereich)
- System.Threading.Thread.Sleep(geschwindigkeit)
- zeichenflaeche.Clear(Panel1.BackColor)
- End While
- Next
- ElseIf NumericUpDownWdhlg.Value >= 1 AndAlso numericUpDownGeschw.Value = 0 Then
- MessageBox.Show("Bitte legen Sie die Geschwindigkeit fest.")
- ElseIf NumericUpDownWdhlg.Value = 0 AndAlso numericUpDownGeschw.Value >= 1 Then
- MessageBox.Show("Bitte legen Sie die Wiederhohlungen fest")
- Else
- zeichenflaeche.DrawRectangle(stift, Panel1.ClientRectangle.Left + groesse, Panel1.ClientRectangle.Top + groesse, Panel1.ClientRectangle.Width - (groesse * 2), Panel1.ClientRectangle.Height - (groesse * 2))
- End If
- End If
- If radioButtonHintergrundFarbe.Checked = True Then zeichenflaeche.FillRectangle(pinsel, Panel1.ClientRectangle.Left + groesse, Panel1.ClientRectangle.Top + groesse, Panel1.ClientRectangle.Width - (groesse * 2), Panel1.ClientRectangle.Height - (groesse * 2))
- If radioButtonHintergrundMuster.Checked = True AndAlso listBoxHintergrundMuster.SelectedIndex >= 0 Then
- Dim musterPinsel As System.Drawing.Drawing2D.HatchBrush = New System.Drawing.Drawing2D.HatchBrush(fuellstil(listBoxHintergrundMuster.SelectedIndex), stift.Color, Color.White)
- zeichenflaeche.FillRectangle(musterPinsel, Panel1.ClientRectangle.Left + groesse, Panel1.ClientRectangle.Top + groesse, Panel1.ClientRectangle.Width - (groesse * 2), Panel1.ClientRectangle.Height - (groesse * 2))
- End If
- End If
- If radioButtonLinie.Checked = True Then
- bereich = bereichReferenz
- Dim xMax As Integer = bereich.Width - groesse
- Dim xPos As Integer = bereich.Left + groesse
- Dim yPos As Integer = CInt(bereich.Height / 2)
- Dim yMax As Integer = CInt(bereich.Height / 2)
- Dim uPos As Integer = CInt(bereich.Height / 2)
- Dim uMax As Integer = CInt(bereich.Height / 2)
- Dim mitte As Integer = CInt(bereich.Height / 2)
- Dim bottom As Integer = bereich.Bottom
- Dim top As Integer = bereich.Top + 1
- If NumericUpDownWdhlg.Value >= 1 AndAlso numericUpDownGeschw.Value >= 1 Then
- For durchlauf As Integer = 0 To CInt(NumericUpDownWdhlg.Value - 1)
- While yPos > top AndAlso uPos < bottom
- yPos = yPos - 5
- yMax = yMax - 5
- zeichenflaeche.DrawLine(stift, xPos, yPos, xMax, yMax)
- uPos = uPos + 5
- uMax = uMax + 5
- zeichenflaeche.DrawLine(stift, xPos, uPos, xMax, uMax)
- System.Threading.Thread.Sleep(geschwindigkeit)
- zeichenflaeche.Clear(Panel1.BackColor)
- End While
- While yPos < mitte AndAlso uPos > mitte
- yPos = yPos + 5
- yMax = yMax + 5
- zeichenflaeche.DrawLine(stift, xPos, yPos, xMax, yMax)
- uPos = uPos - 5
- uMax = uMax - 5
- zeichenflaeche.DrawLine(stift, xPos, uPos, xMax, uMax)
- System.Threading.Thread.Sleep(geschwindigkeit)
- zeichenflaeche.Clear(Panel1.BackColor)
- End While
- Next
- ElseIf NumericUpDownWdhlg.Value >= 1 AndAlso numericUpDownGeschw.Value = 0 Then
- MessageBox.Show("Bitte legen Sie die Geschwindigkeit fest")
- ElseIf NumericUpDownWdhlg.Value = 0 AndAlso numericUpDownGeschw.Value >= 1 Then
- MessageBox.Show("Bitte legen Sie die Wiederhohlungen fest")
- Else
- zeichenflaeche.DrawLine(stift, xPos, yPos, xMax, yMax)
- End If
- End If
- End Sub
- Private Sub buttonLinienFarbe_Click(ByVal sender As Object, ByVal e As EventArgs)
- If ColorDialog1.ShowDialog() = DialogResult.OK Then
- panelLinienFarbeVorschau.BackColor = ColorDialog1.Color
- linienfarbe = ColorDialog1.Color
- End If
- End Sub
- Private Sub buttonHintergrundFarbe_Click(ByVal sender As Object, ByVal e As EventArgs)
- If ColorDialog1.ShowDialog() = DialogResult.OK Then
- panelHintergrundFarbeVorschau.BackColor = ColorDialog1.Color
- hintergrundfarbe = ColorDialog1.Color
- radioButtonHintergrundFarbe.Checked = True
- End If
- End Sub
- Private Sub listBoxLinieStil_DrawItem(ByVal sender As Object, ByVal e As DrawItemEventArgs)
- Dim y As Integer
- Dim boxStift As Pen = New Pen(Color.Black)
- y = CInt((e.Bounds.Top + e.Bounds.Bottom) / 2)
- e.DrawBackground()
- boxStift.DashStyle = linienstil(e.Index)
- e.Graphics.DrawLine(boxStift, e.Bounds.Left + 1, y, e.Bounds.Right - 1, y)
- End Sub
- Private Sub listBoxHintergrundMuster_DrawItem(ByVal sender As Object, ByVal e As DrawItemEventArgs)
- Dim boxPinsel As System.Drawing.Drawing2D.HatchBrush = New System.Drawing.Drawing2D.HatchBrush(fuellstil(e.Index), Color.Black, Color.White)
- e.DrawBackground()
- e.Graphics.FillRectangle(boxPinsel, e.Bounds.Left + 1, e.Bounds.Top + 1, e.Bounds.Width - 1, e.Bounds.Height - 1)
- End Sub
- End Class
Danke für euere Hilfe.
##########
hat sich erledigt
Post wiederhergestellt ~VaporiZed
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Yobi2020“ ()