Springen naar inhoud


- - - - -
VS 2010

Aangemaakte Knoppen Gebruiken Over Meerdere Subs

VS2010

  • Log in a.u.b. om te beantwoorden
Er zijn 7 reacties in dit onderwerp

#1 ksa100

ksa100

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht 19 Apr 2014 16:37

Geplaatst op 06 March 2013 - 20:53


Dag iedereen

Ik zou graag mijn knoppen opnieuw kunnen aanspreken, na ik ze geprogrammeerd heb in mijn code.
Hebben jullie raad? Ik heb echt al vanalles geprobeerd en waarschijnlijk te ver zitten zoeken naar een oplossing.

Bedankt alvast!

De code is als volgt:

Visual Basic Code:
Private Sub frmGalgje_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
For i = 0 To arrLetters.GetUpperBound(0) - 1

btnNummer = New Button
Me.Controls.Add(btnNummer)
With btnNummer
			  .FlatStyle = FlatStyle.Flat
			  .Text = i + 1
			  .Height = 40
			  .Width = 40
			  .Top = 10
			  .Left = 10 * i * 5
			  .Visible = True
End With

Private Sub btnControleer_Click(sender As System.Object, e As System.EventArgs) Handles btnControleer.Click
For i = 0 To arrLetters.GetUpperBound(0) - 1
If btnNummer = "waarde" then
btnNummer.visible = false
End if

Veranderd door pascalbianca, 06 March 2013 - 21:10.
AUb codes tussen de juiste code taqs plaatsen, is nu aangepast.


#2 Benno

Benno

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 944 berichten
    Laatst bezocht
  • LocatieGyor, Magyarország

Geplaatst op 07 March 2013 - 09:18

Nou, te weinig info voor een goed antwoord.
Wat is arrLetters en waar dient het voor?
Wat moet er gebeuren in btnControleer_Click?

#3 ksa100

ksa100

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht 19 Apr 2014 16:37

Geplaatst op 08 March 2013 - 00:24

Dag Benno

Er wordt een woord uit mijn klassenbibliotheek gehaald, waarin alle woorden staan en andere functies voor verschillende woordspellen.
Dit woord die uit de klassenbibliotheek wordt gehaald, wordt opgesplitst in de verschillende letters.
Deze letters worden in de arrLetters gestopt.

Nu is het zo dat voor iedere letter apart een knop wordt aangemaakt (dit is in orde), maar bovenop deze knoppen, wordt eveneens telkens een knop gemaakt met een nummer (dit is de code die je ziet).
De bedoeling is wanneer ik een juiste letter geraden heb, die nummerknop, die boven de letter staat, niet meer weergegeven wordt.
Daarom ga ik met een for controleren of dat de letter voorkomt, in die for moet dan de optie staan om de nummerknoppen eventueel op unvisible te plaatsen.

Hopelijk heb je iets aan mijn uitleg

Mvg

#4 ksa100

ksa100

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht 19 Apr 2014 16:37

Geplaatst op 10 March 2013 - 12:13

Dag iedereen

Is er echt niemand die voor een oplossing kan zorgen?
Het is echter dringend...

Mvg

#5 Benno

Benno

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 944 berichten
    Laatst bezocht
  • LocatieGyor, Magyarország

Geplaatst op 10 March 2013 - 12:43

Maak een klasse voor je buttons en hou een lijst bij:
Ik heb hier de Text van de button gewijzigd naar de letter, zodanig dat je geen twee reeksen buttons nodig hebt:

Visual Basic Code:
Option Explicit On
Option Strict On
Option Infer On

Public Class LetterButton
	Public Sub New(letter As Char, button As Button)
		Me.Letter = letter
		Me.Button = button
	End Sub

	Public Property Letter As Char

	Public Property Button As Button

	Public Sub Check(letter As Char)
		If letter = Me.Letter Then
			'Button.Visible = False
			'of volgende (dan heb je geen 2 reeksen buttons nodig)
			Button.Text = Me.Letter
		End If
	End Sub

End Class
 


en je form (met test:)

Visual Basic Code:
Option Explicit On
Option Strict On
Option Infer On

Public Class FormGalgje
	Private _Woord As String
	Private _Buttons As New List(Of LetterButton)

	Public Property Woord As String
		Get
			Return _Woord
		End Get
		Set(value As String)
			_Woord = value
			ClearButtons()
			MaakButtons()
		End Set
	End Property

	Private Sub ClearButtons()
		For Each button In _Buttons
			Controls.Remove(button.Button)
		Next
		_Buttons.Clear()
	End Sub

	Private Sub MaakButtons()
		Dim index As Int32 = 0
		For Each karakter As Char In Woord
			Dim button = New Button
			With button
				.FlatStyle = FlatStyle.Flat
				.Height = 40
				.Width = 40
				.Top = 10
				.Left = 10 * index * 5
				index += 1
				.Text = index.ToString
			End With
			Controls.Add(button)
			_Buttons.Add(New LetterButton(karakter, button))
		Next
	End Sub

	Private Sub Controleer(letter As Char)
		For Each button In _Buttons
			button.Check(letter)
		Next
	End Sub

#Region "test"
	Private Sub ButtonControleer_Click(sender As System.Object, e As System.EventArgs) Handles ButtonControleer.Click
		Static index As Int32 = 0
		Static karakters As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
		Controleer(karakters(index))
		index += 1
		If index = karakters.Length Then index = 0
	End Sub

	Private Sub FormGalgje_DoubleClick(sender As Object, e As System.EventArgs) Handles Me.DoubleClick
		If Woord = "GALGENMAAL" Then
			Woord = "FANTASTIQUE"
		Else
			Woord = "GALGENMAAL"
		End If
	End Sub

	Private Sub FormGalgje_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
		Woord = "GALGENMAAL"
	End Sub

#End Region

End Class



#6 Benno

Benno

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 944 berichten
    Laatst bezocht
  • LocatieGyor, Magyarország

Geplaatst op 10 March 2013 - 12:53

In bijlage de solution voor 2010

Bijgevoegde Bestanden



#7 ksa100

ksa100

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht 19 Apr 2014 16:37

Geplaatst op 11 March 2013 - 13:24

Bedankt Benno :)!

#8 Ludi

Ludi

    Professional Developer

  • Leden
  • PipPipPipPip
  • 310 berichten
    Laatst bezocht 09 Apr 2014 20:01

Geplaatst op 11 March 2013 - 23:43

Benno,

In de oplossing die je hier geeft gebruik;
  • Option Strict On
  • Option Infer On

ik heb dit geprobeerd op te zoeken, maar staan deze instructies voor.





Ook met taq VS 2010, VS2010 voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VS 2010] Untitled 1

Hosting provided by Combell
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
vbib.be - vbnet.be - vbdotnet.be - visualbasic.be