?
Solved

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

Posted on 2010-08-16
9
Medium Priority
?
427 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Create CentOS 7 Newton Packstack Running Keystone

A bug was filed against RDO for the installation of Keystone v3. This guide is designed to walk you through the configuration for using Keystone v3 with Packstack. You will accomplish this using various repos and the Answers file.

 
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

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

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

Flash (http://en.wikipedia.org/wiki/Adobe_Flash) has evolved over the years to where it has become a masterful tool for displaying content screen.  It has excellent layout placement, UI precision as well as rendering capabilities. This, along with t…
Recently while returning home from work my wife (another .NET developer) was murmuring something. On further poking she said that she has been assigned a task where she has to serialize and deserialize objects and she is afraid of serialization. Wha…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Suggested Courses

752 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