Forum » Programiranje » [VB] Checkbox in Textbox težava
[VB] Checkbox in Textbox težava
r0ks0n ::
Pozdravljeni!
V Visual Basicu sem popoln začetnik. Brez predhodnjega znanja sem se spravil delati en program, ki bi mi olajšal delo, vendar se mi je zataknilo. Gre se za to, da imam na Formu postavljenih 23 Checkboxov, en Textbox in Save ter Quit button. Sedaj pa bi rad imel tako, da so po defaultu vsi checkboxi obkljukani in je v textboxu v vsaki vrstici napisana ena beseda (npr. zelje, solata, koleraba,...). Takšna imena naj bi imeli tudi Checkboxi in ko bi enega odkljukal bi izginila tudi beseda, ki je v textboxu. Ok, to, da so vsi obkljukani, znam nastavit, prav tako, da se določen text izklopi in vklopi, če je checkbox obkljukan ali ne, vendar potem zgornji vedno izgine.
Evo del moje začetniške kode (pa ne se smejat! :) ):
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then TextBox1.Text = ("Solata")
If CheckBox1.Checked = False Then TextBox1.Text = (" ")
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked = True Then TextBox1.Text = vbNewLine & "Koleraba"
If CheckBox2.Checked = False Then TextBox1.Text = vbNewLine & & " "
End Sub
End Class
Upam, da me razumete kaj pravzaprav hočem. Morda sem malo čudno vse skupaj napisal - kakopak, če pa že nekih 8 ur sedim tukaj in brskam po vseh možnih forumih in strica Googla ožemam do konca :)
Pa lep pozdrav vsem!
V Visual Basicu sem popoln začetnik. Brez predhodnjega znanja sem se spravil delati en program, ki bi mi olajšal delo, vendar se mi je zataknilo. Gre se za to, da imam na Formu postavljenih 23 Checkboxov, en Textbox in Save ter Quit button. Sedaj pa bi rad imel tako, da so po defaultu vsi checkboxi obkljukani in je v textboxu v vsaki vrstici napisana ena beseda (npr. zelje, solata, koleraba,...). Takšna imena naj bi imeli tudi Checkboxi in ko bi enega odkljukal bi izginila tudi beseda, ki je v textboxu. Ok, to, da so vsi obkljukani, znam nastavit, prav tako, da se določen text izklopi in vklopi, če je checkbox obkljukan ali ne, vendar potem zgornji vedno izgine.
Evo del moje začetniške kode (pa ne se smejat! :) ):
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then TextBox1.Text = ("Solata")
If CheckBox1.Checked = False Then TextBox1.Text = (" ")
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked = True Then TextBox1.Text = vbNewLine & "Koleraba"
If CheckBox2.Checked = False Then TextBox1.Text = vbNewLine & & " "
End Sub
End Class
Upam, da me razumete kaj pravzaprav hočem. Morda sem malo čudno vse skupaj napisal - kakopak, če pa že nekih 8 ur sedim tukaj in brskam po vseh možnih forumih in strica Googla ožemam do konca :)
Pa lep pozdrav vsem!
majlo ::
Malo nerazumljivo napisano.
Predpostavljam
imaš 3 checkboxe.
zelje
solata
koleraba
Vsi so oblkjukani in rad bi imel v textoxu takrat napisano
zelje
solata
koleraba
ko odkjukaš zelje, želiš, da ostane v textboxu samo
solata
koleraba
??
Razmišljam prav?
Če je tako, potem narediš en sub, ki se sprehodi po kontrolah.
Če je tip kontrole checkbox preveriš, če je ta obkljukan, in če je, dodaš v texbox ime te kontrole in vbnewline (seveda bi moral textboxe imenovat potem zelje, solata).
Potem na spremembo chekcstate kličeš ta sub.
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged, CheckBox4.CheckedChanged, CheckBox5.CheckedChanged
txt()
End Sub
Private Sub txt()
Try
TextBox1.Clear()
For Each ctl As Control In Me.Controls
If (TypeOf ctl Is CheckBox) Then
Dim c As CheckBox = DirectCast(ctl, CheckBox)
If c.Checked Then
TextBox1.Text = TextBox1.Text & c.Name & vbCrLf
End If
End If
Next ctl
Catch ex As Exception
End Try
End Sub
Predpostavljam
imaš 3 checkboxe.
zelje
solata
koleraba
Vsi so oblkjukani in rad bi imel v textoxu takrat napisano
zelje
solata
koleraba
ko odkjukaš zelje, želiš, da ostane v textboxu samo
solata
koleraba
??
Razmišljam prav?
Če je tako, potem narediš en sub, ki se sprehodi po kontrolah.
Če je tip kontrole checkbox preveriš, če je ta obkljukan, in če je, dodaš v texbox ime te kontrole in vbnewline (seveda bi moral textboxe imenovat potem zelje, solata).
Potem na spremembo chekcstate kličeš ta sub.
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged, CheckBox4.CheckedChanged, CheckBox5.CheckedChanged
txt()
End Sub
Private Sub txt()
Try
TextBox1.Clear()
For Each ctl As Control In Me.Controls
If (TypeOf ctl Is CheckBox) Then
Dim c As CheckBox = DirectCast(ctl, CheckBox)
If c.Checked Then
TextBox1.Text = TextBox1.Text & c.Name & vbCrLf
End If
End If
Next ctl
Catch ex As Exception
End Try
End Sub
r0ks0n ::
@majlo: Najlepša hvala za odgovor! Res sem malo nerazumljivo napisal, a kot sem dejal sem popoln začetnik v VB zato mi je bilo toliko težje obrazložiti zadevo :) Prav si sklepal kaj želim, da. Najlepša hvala za tole kodo, bom se malo poigral in seveda ustrezno nadgradil oz. pridobil znanje VB-ja, če se pa karkoli zatakne se pa tukaj javim :)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# Top tutorialiOddelek: Programiranje | 2545 (1808) | darkkk |
» | [c#] ukaz radirkaOddelek: Programiranje | 1107 (900) | japol |
» | Odpiranje programa v Visual StudioOddelek: Programiranje | 903 (761) | darkolord |
» | [c#] picturebox, slika na slikoOddelek: Programiranje | 1081 (891) | japol |
» | visual basic 2008 express editionOddelek: Programiranje | 1804 (1231) | sel |