multiple selection from checkboxes into text box

  • Thread starter Thread starter Demonicpagan
  • Start date Start date
D

Demonicpagan

I have this form where I am trying to place items from checked boxes
into a text box. An image of what this form looks like is at
http://www.stelth2000inc.com/images/screen.png

Here is some code I have done for the first 2 check boxes, name and
world, they do what I want them to do, but for the rest of the check
boxes, the codes would be a bit minotonous. Is there a better way of
doing this, maybe checkedboxlist?

Private Sub sigBtn_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles sigBtn.Click
Dim bbname As String = "
Name: " &
charNameTxt.Text & "
" & vbCrLf
Dim bbworld As String = "
World: " &
worldCombo.SelectedItem & "
" & vbCrLf

' Name check box checked
If chNameChk.Checked = True Then
signatureTxt.Text = ""
signatureTxt.Text = signatureTxt.Text & bbname
End If

' World check box checked
If worldChk.Checked = True Then
signatureTxt.Text = ""
signatureTxt.Text = signatureTxt.Text & bbworld
End If

' Name & world check boxes checked
If chNameChk.Checked = True And worldChk.Checked = True Then
signatureTxt.Text = ""
signatureTxt.Text = signatureTxt.Text & bbname & bbworld
End If

End Sub

Any help with this would be awesome
 
Demonicpagan said:
I have this form where I am trying to place items from checked boxes
into a text box. An image of what this form looks like is at
http://www.stelth2000inc.com/images/screen.png

Here is some code I have done for the first 2 check boxes, name and
world, they do what I want them to do, but for the rest of the check
boxes, the codes would be a bit minotonous. Is there a better way of
doing this, maybe checkedboxlist?

Private Sub sigBtn_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles sigBtn.Click
Dim bbname As String = "
Name: " &
charNameTxt.Text & "
" & vbCrLf
Dim bbworld As String = "
World: " &
worldCombo.SelectedItem & "
" & vbCrLf

' Name check box checked
If chNameChk.Checked = True Then
signatureTxt.Text = ""
signatureTxt.Text = signatureTxt.Text & bbname
End If

' World check box checked
If worldChk.Checked = True Then
signatureTxt.Text = ""
signatureTxt.Text = signatureTxt.Text & bbworld
End If

' Name & world check boxes checked
If chNameChk.Checked = True And worldChk.Checked = True Then
signatureTxt.Text = ""
signatureTxt.Text = signatureTxt.Text & bbname & bbworld
End If

End Sub

Any help with this would be awesome

For Each C as Control in Me.Controls
if typeof c is checkbox then
if directcast(c, checkbox).checked then
signatureTxt.Text += C.Name
end if
end if
Next

That might not be the exact code, but it's close.

good luck
 
Demonicpagan said:
' Name check box checked
If chNameChk.Checked = True Then
signatureTxt.Text = ""
signatureTxt.Text = signatureTxt.Text & bbname
End If

' World check box checked
If worldChk.Checked = True Then
signatureTxt.Text = ""
signatureTxt.Text = signatureTxt.Text & bbworld
End If

' Name & world check boxes checked
If chNameChk.Checked = True And worldChk.Checked = True Then
signatureTxt.Text = ""
signatureTxt.Text = signatureTxt.Text & bbname & bbworld
End If

End Sub

I'm sure someone'll pop in with some real help... in the mean time, I'm
wondering why you're clearing then appending text to a textbox.

You should be able to replace this.....
If worldChk.Checked = True Then
signatureTxt.Text = ""
signatureTxt.Text = signatureTxt.Text & bbworld
End If
....with....
If worldChk.Checked = True Then
signatureTxt.Text = bbworld
End If

Depending on the details, I might code it like this in VB5/6
'========
Option Explicit

Private mobjCheckBoxes As Collection

Private Sub Form_Load()
Set mobjCheckBoxes = New Collection

Check1.Tag = "Name"
Check2.Tag = "Address"

'I like to build my own collection instead of looping through
'the entire Controls collection each time
mobjCheckBoxes.Add Check1
mobjCheckBoxes.Add Check2

End Sub

Private Sub Command1_Click()
Dim c As CheckBox

With Text1
.Text = "" 'clear all text

'Loop through the collection, looking for 'checked' boxes
'appending the Tag property to the textbox
'I'm sure dotNet has something similar
For Each c In mobjCheckBoxes
If c.Value = vbChecked Then
.SelText = " " & c.Tag
'Reset Cursor = end of all text
.SelStart = Len(.Text)
End If
Next

End With

End Sub
'========
 
The way that i am wanting this to work is the user selects items that
they would want in a forum signature. Each check box is representative
of items in other tabs in this program (i.e. Name is the Character name
which is a text box in the General Tab, World is a combo box in that
same tab). The user can select as many as all the check boxes or as
little as one check box. I was clearing the box and appending text to
the box in case user makes selections, clicks create signature, changes
their mind and selects other items, and clicks create signature again.
I didn't want the new selections following the old selections, but
rather overwrite what was previously there.

Ultimately output would look something like this if user was to select
the Character Name & World check boxes:

color=blue]Name: character name[/QUOTE]
World: character world

Just Name:
Name: character name

Just World:
Name: character name

World & Linkshell:
World: character world
Linkshell: linkshell

so on and so forth
 
Just for knowledge purposes, I am using Visual Basic 2005 Express
Edition to code this
 
I probably should also ask this while I'm at it because I know it will
be something that I will be asking.

The checkbox I have as Sex will be outputting either

Sex: Male
or

Sex: Female

based on what radio button was selected in the General Tab. How will I
need to go about handling this with the rest of what I'm trying to do?
 
Back
Top