soort schakelbord ?

Status
Niet open voor verdere reacties.
dank je wel voor je code dat had ik nog niet eens getest, gezien, dat de text verdwijnt bij cancel
nu dus opgelost dank dank

als de button is aangepast met jou code en ik bedien deze button dan wordt niet het bestand geopend maar het path waar het bestand staat



ik proberen jou handleiding toe te passen
 
Laatst bewerkt:
nieuwe aanpassingen

Het automatisch toevoegen van een button ben ik maar van afgestapt omdat ik denk dat het uit eindelijk voor problemen gaat zorgen
Ik denk dat een top 15 van alledaagse te openen mappen voldoende is

Op de form staan nu nog 2 buttons uiteindelijk moeten dat er 15 worden maar voor nu laat ik het even bij 2
bij elke button staat ook een radio button hiermee selecteer ik de button waar ik de text als path naam wil hebben.

de vraag hierbij is. hoe laat ik dit voor alle buttons gelden?
zoiets als: kijk welke radio button is gechecked en opendialog geld dan voor de bijbehorende button?

Button1 is de Button waarmee ik dus openfiledialog start als de radio button is gechecked

Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim open As New OpenFileDialog
        If Me.RadioButton2.Checked = True Then
            open.Filter = "Alle Bestanden *.*|*.*"
            If open.ShowDialog() = DialogResult.OK Then
                TextBox2.Text = open.FileName
                With Button3
                    .Tag = "TextBox2.Text"
                    .Text = Me.TextBox2.Text ''// pas de tekst aan
                    .ForeColor = Color.Blue
                End With
                RadioButton2.Checked = False
            End If
        End If
    End Sub

Code:
   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If Me.Button2.Text = "" Then
            Exit Sub
        End If
        If Not Me.Button2.Text Is Nothing Then
            System.Diagnostics.Process.Start(Me.Button2.Text)
        End If
    End Sub

de code hierboven en onder opend de map of file die als text in de button staat


Code:
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        If Me.Button3.Text = "" Then
            Exit Sub
        End If
        If Not Me.Button3.Text Is Nothing Then
            System.Diagnostics.Process.Start(Me.Button3.Text)
        End If
    End Sub

met de onderste code maak je de button weer leeg
Code:
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        If RadioButton2.Checked = True Then
            Me.Button3.Text = ""
        End If
        RadioButton2.Checked = False
    End Sub
 
Laatst bewerkt:
pasan zei:
de vraag hierbij is. hoe laat ik dit voor alle buttons gelden?
zoiets als: kijk welke radio button is gechecked en opendialog geld dan voor de bijbehorende button?

Je kunt zoiets doen:

[CPP] Dim TxtBox As TextBox
For Each Ctrl As Control In Me.Controls
If TypeOf Ctrl Is RadioButton Then
Dim RB As RadioButton = Ctrl
If RB.Checked = True Then
Select Case RB.Name
Case "RB1"
TxtBox = TextBox1
Case "RB2"
TxtBox = TextBox2
End Select
End If
End If
Next[/CPP]

Waarbij TxtBox de juiste TextBox voorstelt. Hier baseer ik de selectie dus op naam van de RadioButton.
 
heb nu dus 3 x 15 controlles
radio buttons 15 x
buttons 15 x
textboxen 15 x

ik denk met extra case regels "RB3" enz dat ik dan alle 15 controls bedien

maar hoe ik nu de code van open show dialog moet toevoegen aan jou laatste stukje code..............................................???
 
Laatst bewerkt:
met de volgende code wordt bij elke radiobutton die checked = true de open dialog gestart, maar nu krijg ik de text niet in de Button
Code:
        Dim open As New OpenFileDialog
            open.Filter = "Alle Bestanden *.*|*.*"
            If open.ShowDialog() = DialogResult.OK Then
            Dim TxtBox As TextBox
            For Each Ctrl As Control In Me.Controls
                If TypeOf Ctrl Is RadioButton Then
                    Dim RB As RadioButton = Ctrl
                    If RB.Checked = True Then
                        Select Case RB.Name
                            Case "RB1"
                                TxtBox = TextBox1
                            Case "RB2"
                                TxtBox = TextBox2
                        End Select
                    End If
                End If
            Next
        End If
 
ik heb voor elke button de code er bij gezet het is dan wel een lange code maar ik kan ermee leven
het laatste stukje code kreeg ik niet werkend

rest mij alleen nog het stukje opslaan die je eerder al hebt gegeven maar ook daar zie ik door de bomen het bos niet meer
als je me daar nog mee zou willen helpen JoZ1

dus bij afsluiten de form behouden zoals de laatste aanpassingen zijn gemaakt qua text in de Buttons
als de form dan weer geopend wordt er niet weer een map aan een button gehangen hoeft te worden.
 
OK. Ik snap het nu ook niet meer. :P

Geef even een (duidelijke) lijst met wat er voor problemen zijn ;)
 
hier de gehele lijst

het eerste stuk code is voor 4 radiobuttons en textbox en button, mijn code gaat door voor 14 buttons met deze code open ik OpenFileDialog

Code:
Public Class Form1

    Private Sub Button21_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button21.Click

        Dim open As New OpenFileDialog
        If Me.RadioButton1.Checked = True Then
            open.Filter = "Alle Bestanden *.*|*.*"
            If open.ShowDialog() = DialogResult.OK Then
                TextBox1.Text = open.FileName
                With Button1
                    .Tag = "TextBox1.Text"
                    .Text = Me.TextBox1.Text ''// pas de tekst aan
                    .ForeColor = Color.Blue
                End With
                RadioButton1.Checked = False
            End If
        End If
        If Me.RadioButton2.Checked = True Then
            open.Filter = "Alle Bestanden *.*|*.*"
            If open.ShowDialog() = DialogResult.OK Then
                TextBox2.Text = open.FileName
                With Button2
                    .Tag = "TextBox2.Text"
                    .Text = Me.TextBox2.Text ''// pas de tekst aan
                    .ForeColor = Color.Blue
                End With
                RadioButton2.Checked = False
            End If
        End If
        If Me.RadioButton3.Checked = True Then
            open.Filter = "Alle Bestanden *.*|*.*"
            If open.ShowDialog() = DialogResult.OK Then
                TextBox3.Text = open.FileName
                With Button3
                    .Tag = "TextBox3.Text"
                    .Text = Me.TextBox3.Text ''// pas de tekst aan
                    .ForeColor = Color.Blue
                End With
                RadioButton3.Checked = False
            End If
        End If
        If Me.RadioButton4.Checked = True Then
            open.Filter = "Alle Bestanden *.*|*.*"
            If open.ShowDialog() = DialogResult.OK Then
                TextBox4.Text = open.FileName
                With Button4
                    .Tag = "TextBox4.Text"
                    .Text = Me.TextBox4.Text ''// pas de tekst aan
                    .ForeColor = Color.Blue
                End With
                RadioButton4.Checked = False
            End If
        End If

met onderstaande code blok kun je op elke button klikken waar de filename als text in de button staat. En deze button opend dan ook de file.
ook hier heb ik alleen de eerste 4 button code neergezet in werkelijkheid heb ik er 14

Code:
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Me.Button1.Text = "" Then
            Exit Sub
        End If
        If Not Me.Button1.Text Is Nothing Then
            System.Diagnostics.Process.Start(Me.Button1.Text)
        End If
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If Me.Button2.Text = "" Then
            Exit Sub
        End If
        If Not Me.Button2.Text Is Nothing Then
            System.Diagnostics.Process.Start(Me.Button2.Text)
        End If
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        If Me.Button3.Text = "" Then
            Exit Sub
        End If
        If Not Me.Button3.Text Is Nothing Then
            System.Diagnostics.Process.Start(Me.Button3.Text)
        End If
    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        If Me.Button4.Text = "" Then
            Exit Sub
        End If
        If Not Me.Button4.Text Is Nothing Then
            System.Diagnostics.Process.Start(Me.Button4.Text)
        End If
    End Sub

met onderstaande code kun je als je de radio button hebt gechecked en op knop 20 click de button weer leeg maken
ook hier weer alleen de eerste 4 stuks neer gezet ipv 14

Code:
Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click
        If RadioButton1.Checked = True Then
            Me.Button1.Text = ""
        End If
        If RadioButton2.Checked = True Then
            Me.Button2.Text = ""
        End If
        If RadioButton3.Checked = True Then
            Me.Button3.Text = ""
        End If
        If RadioButton4.Checked = True Then
            Me.Button4.Text = ""
        End If
        RadioButton1.Checked = False
        RadioButton2.Checked = False
        RadioButton3.Checked = False
        RadioButton4.Checked = False

1 vraag van mij was hoe krijg ik dit werkend met een kortere code
2e vraag die ik heb is hoe sla ik de form op zodat de volgende keer als ik de form open de buttons die ik gemaakt heb ook weer tevoorschijn komen.

je hebt al eerder geantwoord op beide vragen maar helaas ik krijg het niet werkend met jou voorbeeld
op zich werken de buttons zoals ik graag wilde alleen met een hele lange code.
wat nog helemaal niet werkt is het opslaan van de form bij afsluiten of via een extra opslaan button.
ik hoop dat ik het goed heb uitgelegd en bij voorbaat dank voor je tijd
 
Vraag 1:

Die eerste code kun je zo verkorten:

[CPP]Dim RB As New RadioButton
For Each Ctrl As Control In Me.Controls
If TypeOf Ctrl Is RadioButton Then
RB = Ctrl
If RB.Checked = True Then Exit For Else RB = Nothing
End If
Next

If Not RB Is Nothing Then
Dim Tag, Text As String
Dim TextBox As TextBox
Dim Bttn As Button

Dim open As New OpenFileDialog
open.Filter = "Alle Bestanden *.*|*.*"
If open.ShowDialog() = DialogResult.OK Then
TextBox.Text = open.FileName
With Bttn
.Tag = Tag
.Text = Text
.ForeColor = Color.Blue
End With
RB.Checked = False
End If

Select Case RB.Name
Case "RadioButton1"
Tag = "TextBox1"
Text = TextBox1.Text
TextBox = TextBox1
Bttn = Button1
Case "RadioButton2"
Tag = "TextBox2"
Text = TextBox2.Text
TextBox = TextBox2
Bttn = Button2
Case "RadioButton3"
Tag = "TextBox3"
Text = TextBox3.Text
TextBox = TextBox3
Bttn = Button3
Case "RadioButton4"
Tag = "TextBox4"
Text = TextBox4.Text
TextBox = TextBox4
Bttn = Button4
End Select
Else : MsgBox("U heeft geen RadioButton geselecteerd.", 48 + 4096, "Waarschuwing")
End If
[/CPP]


Die tweede kun je zo verkorten:

[CPP]Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button3.Click, Button4.Click
If sender.Text <> "" Then Process.Start(sender.Text)
End Sub[/CPP]

En de derde zo:

[CPP]Dim RB As New RadioButton
For Each Ctrl As Control In Me.Controls
If TypeOf Ctrl Is RadioButton Then
RB = Ctrl
If RB.Checked = True Then Exit For Else RB = Nothing
End If
Next

If Not RB Is Nothing Then
Select Case RB.Name
Case "RadioButton1"
TextBox1.Text = ""
RadioButton1.Checked = False
Case "RadioButton2"
TextBox2.Text = ""
RadioButton2.Checked = False
Case "RadioButton3"
TextBox3.Text = ""
RadioButton3.Checked = False
Case "RadioButton4"
TextBox4.Text = ""
RadioButton4.Checked = False
End Select

Else : MsgBox("U heeft geen RadioButton geselecteerd.", 48 + 4096, "Waarschuwing")
End If[/CPP]


Vraag 2:

Je weet hoe je een INI bestandje moet opslaan en inlezen (zie handleiding) ?
Wat is je huidige code?
 
ik heb nog ff tijd om hier eenberichtje te zetten
het is me gelukt om de form te openen met de laatste aanpassing voor wat betreft de button
ik schrijf elke textbox naar een textfile
en bij openen van de form wordt de tekst opgehaalt van de textfile ik heb er dus 14 van
ik zal later vanavond als het me lukt nog de code hier neer zetten en anders lukt me dat morgen wel

uiteraard stel ik jou mening zeer op prijs JoZ1 over mn inelkaar geflanste code die met meer geluk dan wijzheid ook nog es werkt
 
Ik wacht in spanning op je code :P

pasan zei:
ik schrijf elke textbox naar een textfile

Ik denk dat je beter naar een INI bestand kan schrijven. Dat is er maar één.
Heb je mijn handleiding gezien? (incl. voorbeeldproject)
 
met onderstaande code wordt bij het openen van de form de text uit een textfile gehaald dat wil zeggen dat elke button een eigen textfile heeft.
Code:
    Private Sub Form1_Load() Handles MyBase.Load

        Dim Reader1 As New StreamReader("C:\TextFile1.txt", False)
        TextBox1.Text = Reader1.ReadToEnd
        Me.Button1.Text = Me.TextBox1.Text
        Me.Button1.ForeColor = Color.Blue
        Reader1.Close()
        On Error Resume Next
        Dim Reader2 As New StreamReader("C:\TextFile2.txt", False)
        TextBox2.Text = Reader2.ReadToEnd
        Me.Button2.Text = Me.TextBox2.Text
        Me.Button2.ForeColor = Color.Blue
        Reader2.Close()
        On Error Resume Next
        Dim Reader3 As New StreamReader("C:\TextFile3.txt", False)
        TextBox3.Text = Reader3.ReadToEnd
        Me.Button3.Text = Me.TextBox3.Text
        Me.Button3.ForeColor = Color.Blue
        Reader3.Close()
        Dim Reader4 As New StreamReader("C:\TextFile4.txt", False)
        TextBox4.Text = Reader4.ReadToEnd
        Me.Button4.Text = Me.TextBox4.Text
        Me.Button4.ForeColor = Color.Blue
        Reader4.Close()


met onderstaande code wordt de tekst van de textbox naar de textfile gesaved
ik laat er hier 4 zien. In mijn form staan er 14

Code:
    Private Sub Button21_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button21.Click

        Dim open As New OpenFileDialog
        If Me.RadioButton1.Checked = True Then
            open.Filter = "Alle Bestanden *.*|*.*"
            If open.ShowDialog() = DialogResult.OK Then
                TextBox1.Text = open.FileName
                With Button1
                    .Tag = "TextBox1.Text"
                    .Text = Me.TextBox1.Text ''// pas de tekst aan
                    .ForeColor = Color.Blue
                End With
                RadioButton1.Checked = False
                Dim Writer As New StreamWriter("C:\TextFile1.txt", False)
                Writer.Write(TextBox1.Text)
                Writer.Close()
            End If
        End If
        If Me.RadioButton2.Checked = True Then
            open.Filter = "Alle Bestanden *.*|*.*"
            If open.ShowDialog() = DialogResult.OK Then
                TextBox2.Text = open.FileName
                With Button2
                    .Tag = "TextBox2.Text"
                    .Text = Me.TextBox2.Text ''// pas de tekst aan
                    .ForeColor = Color.Blue
                End With
                RadioButton2.Checked = False
                Dim Writer As New StreamWriter("C:\TextFile2.txt", False)
                Writer.Write(TextBox2.Text)
                Writer.Close()
            End If
        End If
        If Me.RadioButton3.Checked = True Then
            open.Filter = "Alle Bestanden *.*|*.*"
            If open.ShowDialog() = DialogResult.OK Then
                TextBox3.Text = open.FileName
                With Button3
                    .Tag = "TextBox3.Text"
                    .Text = Me.TextBox3.Text ''// pas de tekst aan
                    .ForeColor = Color.Blue
                End With
                RadioButton3.Checked = False
                Dim Writer As New StreamWriter("C:\TextFile3.txt", False)
                Writer.Write(TextBox3.Text)
                Writer.Close()
            End If
        End If
        If Me.RadioButton4.Checked = True Then
            open.Filter = "Alle Bestanden *.*|*.*"
            If open.ShowDialog() = DialogResult.OK Then
                TextBox4.Text = open.FileName
                With Button4
                    .Tag = "TextBox4.Text"
                    .Text = Me.TextBox4.Text ''// pas de tekst aan
                    .ForeColor = Color.Blue
                End With
                RadioButton4.Checked = False
                Dim Writer As New StreamWriter("C:\TextFile4.txt", False)
                Writer.Write(TextBox4.Text)
                Writer.Close()
            End If
        End If

en met onderstaande code kun je de button.text verwijderen en daarmee ook de textfile.text
ook hier weer zijn het er eigenlijk 14

Code:
   Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click
        If RadioButton1.Checked = True Then
            Me.Button1.Text = ""
            Me.TextBox1.Text = ""
            Dim Writer As New StreamWriter("C:\TextFile1.txt", False)
            Writer.Write(TextBox1.Text)
            Writer.Close()
        End If
        If RadioButton2.Checked = True Then
            Me.Button2.Text = ""
            Me.TextBox2.Text = ""
            Dim Writer As New StreamWriter("C:\TextFile2.txt", False)
            Writer.Write(TextBox2.Text)
            Writer.Close()
        End If
        If RadioButton3.Checked = True Then
            Me.Button3.Text = ""
            Me.TextBox3.Text = ""
            Dim Writer As New StreamWriter("C:\TextFile3.txt", False)
            Writer.Write(TextBox3.Text)
            Writer.Close()
        End If
        If RadioButton4.Checked = True Then
            Me.Button4.Text = ""
            Me.TextBox4.Text = ""
            Dim Writer As New StreamWriter("C:\TextFile4.txt", False)
            Writer.Write(TextBox4.Text)
            Writer.Close()
        End If

en met onderstaande code wordt de file geopend die als text in een butten staat
ook in dit geval alleen de eerste 4 button code hier in beeld

Code:
 Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click If sender.Text <> "" Then Process.Start(sender.Text)
    End Sub

ik heb gister en vandaag ook weer geprobeert jou ini code toe te passen maar ik snap dr werkelijk helemaal niks van.
geen idee waar ik jou voorbeeld regels neer moet zetten
het hele class blok dat denk ik nog te snappen waar dat staan moet want ik denk gewoon een nieuwe class toevoegen en die grote ini code daar in zetten toch?

jou laatste voorbeeld code nr 1 een verkorte versie van de openfiledialoge gaf een foutmelding bij de .tag=tag en de .text=text. Na een nacht van werken en een dag van niet slapen:shocked: weet ik helaas niet meer welke foutmelding dat was vanmiddag
volgens mij was het iets van dat ze te vroeg werden aangeroepen. Ik kan me voorstellen dat je graag presies wil weten wat het voor fout was, maar ik heb een vermoeden dat je dat wel weet. zo niet gooi ik mn progje nog een keer om zodat ik de exacte fout hier kan vermelden

Ben benieuwd wat je van de code vind:d
 
OK. Kun je je project anders even uploaden?

Ik denk weer dat 't veel korter kan. En in plaats van alles te simuleren en dan hier een code te plaatsen is het misschien handiger dat ik jouw project gelijk aanpas :).
 
Daar moet ik wel veel aan veranderen :shocked:.

Geef me even de tijd ;)
 
ik wacht geduldig af dont worry
ben al blij dat je dit wil doen
 
Sorry dat het zo lang duurt :o, maar mijn Visual Studio geeft problemen.
Ik kan jouw project niet gebruiken, bij het debuggen:

49122400.jpg


Dit ligt waarschijnlijk aan mijn Visual Studio, omdat ik dit ook met sommige andere projecten heb die eerder wel werkten.
Ik probeer het zo snel mogelijk te verhelpen.
 
ik wacht rustig af
ik hoor het vanzelf wel, inmiddels is het me ook al gelukt er een instalatie bestand van te maken en zowaar het werkt, na een kleine aanpassing
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan