Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

problems using a checkedlistbox control in a form from vb.net

Posted on 2010-08-16
9
Medium Priority
?
432 Views
Last Modified: 2013-11-27
Hi experts!

I have this situation:

A form with many controls. One of this contols is a checkedlistbox.

What I need to do, but can`t figure it out how, is to save all the user`s selection from the checkedlistbox in a variable. Then I need to be able to retrieve this user`s selections stored in a variable, read it (somehow) and then get the selected items checked back in the checkedlistbox.

Did I make my point?

It`s something close to getting the selection and then showing the selection again in the checkedlistbox.

Any helpful idea?
0
Comment
Question by:zandizza
  • 5
  • 4
9 Comments
 
LVL 17

Expert Comment

by:nepaluz
ID: 33450394


            Dim clb As New CheckedListBox
            Dim clbDic As New Dictionary(Of Integer, Boolean)

' to get the set values
            For x = 0 To clb.Items.Count - 1
                clbDic.Add(x, clb.GetItemChecked(x))
            Next

'to retrieve the values and set them

            Dim Result As Boolean = False
            For x = 0 To clb.Items.Count - 1
                clb.SetItemCheckState(x, CType(clbDic.TryGetValue(x, Result), CheckState))
            Next
0
 

Author Comment

by:zandizza
ID: 33450405
it seems as a good idea, I`ll try it right away!
0
 

Author Comment

by:zandizza
ID: 33450487
how to clear the elements in the dictionary?

I need to do this process over and over againg.

did I explain myself?
0
Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

 
LVL 17

Expert Comment

by:nepaluz
ID: 33450508
to clear entire contents of dictionary

clbDic.Clear()

0
 
LVL 17

Accepted Solution

by:
nepaluz earned 2000 total points
ID: 33450523
You can also set vaues to specific keys (items in the checklist control) in the dictionary (which has already been populated) directly by:

clbDic.Item(0) = True

or

clbDic.Item(0) = False

Remember, the index here (0) is just the first item.
0
 

Author Comment

by:zandizza
ID: 33455458
I found an easier way to solve it due to the nature of my problem. Though your solution was really helpful because I didn`t know the existence of the Dictionary class.

I`m pretty  sure I`ll use it in the near future!

Thanks
0
 
LVL 17

Expert Comment

by:nepaluz
ID: 33455601
Would be nice if you shared your solution ......
0
 

Author Comment

by:zandizza
ID: 33457180
Ok, here it goes my solution!

I had a CheckedListBox, the data collection was formed by the seven days of the week.

I had to be able to capture the user`s selection in a variable.

The variable was a specific column of a row.

When the user clicked on any row of the datagridview the checkedListBox had to show the store information of the previous user`s selection contained in that row.

My problems was how to capture the user`s selection and then how to retrieve it in the CheckedListBox


The solution I found was this.

to get the days selection

For i As Integer = 0 To checkedListBox.CheckedItems.Count - 1
                       
                        c = chkListDias.CheckedItems(i).ToString
                        If c = "Monday" Then
                            Num = Num + 1
                           
                        ElseIf c = "Tuesday" Then
                           
                            Num = Num + 2
                        ElseIf c = "Wednesday" Then
                           
                            Num = Num + 4
                        ElseIf c = "Thursday" Then
                           
                            Num = Num + 8
                        ElseIf c = "Friday" Then
                           
                            Num = Num + 16
                        ElseIf c = "Saturday" Then
                           
                            Num = Num + 32
                        ElseIf c = "Sunday" Then
                           
                            Num = Num + 64
                        End If
                    Next


clearing the selected items in the checkedListBox
For i = 0 To 6
                        chkListDias.SetItemCheckState(i, CheckState.Unchecked)
                    Next



when retrieving the information

it makes a logical comparation of bits, using And. If both numbers are correct, then I otherwise 0.



Dim j As Integer = 0
Dim g As Integer = 0

For j = 0 To 6
                g = Math.Pow(2, j)
                If (Num And g) Then
                    chkListDias.SetItemChecked(j, True)
                End If
            Next
0
 
LVL 17

Expert Comment

by:nepaluz
ID: 33457860
Thanks for sharing, I am sure someone will find this helpful in good time.
0

Featured Post

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes relatively difficult and non-obvious issues that are likely to arise when creating COM class in Visual Studio and deploying it by professional MSI-authoring tools. It is assumed that the reader is already familiar with the cla…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
Loops Section Overview
Suggested Courses

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question