checkedlistbox(ChecklistBox的使用总结[通俗易懂])
一、C# winform中,checkedListBox控件搞不懂
1:设置多行,点击CheckListBox控件右上角的三角符号,选择编辑项,在弹出的对话框里面输入你要生成的行就可以了,换行表示开始1个新行,如下
ni
hao
生成的就是2个选项框。
2:我看了下CheckListBox的事件,checkedListBox1_SelectedIndexChanged可以是勾选后触发。不过前提是点击的时候必须点的是复选框,这样才能勾选,如果没有点击复选框,点的是文字,那么还是没有勾选。
大概看了下,checkedListBox不是太好用。我也没能好好使用,希望上面的回答对你有帮助,如果有更好的方法也写出来分享下
二、checkedlistbox用法
一、常用属性和方法
CheckedListBox控件的属性和方法基本上都可以在ListBox控件中找到,可以参看这里:vb.net入门——ListBox控件的使用。值得我们重视的是,CheckedListBox控件的CheckedItems属性,它是CheckedListBox控件中复选框选中的项的集合,我们可以通过检索该属性来获得选中的项。
CheckOnClick指示是否只要一选择项即切换复选框。默认行为是在首次单击时更改选定内容,然后让用户再次单击以应用选中标记。但在某些情况下,您可能愿意一单击项就选中它。
下面我们就直接以实例来了解和掌握CheckedListBox控件的方法和属性。
二、在CheckedListBox控件中添加、移除项
因为CheckedListBox控件控件的使用和ListBox控件相似,所以我们这里就只针对用编程的方法来对CheckedListBox控件的操作。
1、添加项
添加一个名为“新建文件”的项,且复选框为选中状态
CheckedListBox1.Items.Add("新建文件", True)
添加一个名为“拷贝文件”的项,且复选框为未选中状态
CheckedListBox1.Items.Add("拷贝文件", False)
2、删除项
使用Remove来删除项,或者使用RemoveAt来移除指定索引的项
删除CheckedListBox中的选中的项
CheckedListBox1.Items.Remove(CheckedListBox1.SelectedItem)
删除指定索引的项
CheckedListBox1.Items.RemoveAt(0)
3、删除所有项
CheckedListBox1.Items.Clear()
三、确定 CheckedListBox控件中已选中的项
当显示CheckedListBox控件中的数据时,可以循环访问CheckedItems属性中存储的集合,或者使用GetItemChecked方法一一检查列表确定所选中的项。
GetItemChecked方法采用项的索引号作为参数,并返回True或者False。SelectedItems和 SelectedIndices属性并不确定哪些项目已选中,它们只指示哪些项目为突出显示。CheckedItems集合是从0开始的。
示例:
1、在窗体上,放置一个CheckedListBox和两个Button控件,并在CheckedListBox的“字符串编辑器”中添加字面为 a到 l的几个项目,如下图所示:
2、两个按钮中的Click事件的代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If CheckedListBox1.CheckedItems.Count<> 0 Then
Dim i As Integer
Dim s As String=""
For i= 0 To CheckedListBox1.CheckedItems.Count- 1
s= s&"选中项"&(i+ 1).ToString&"="& CheckedListBox1.CheckedItems.Item(i).ToString& ControlChars.CrLf
Next
MessageBox.Show(s)
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim i As Integer
Dim s As String=""
s="选中项:"& ControlChars.CrLf
For i= 0 To(CheckedListBox1.Items.Count- 1)
If CheckedListBox1.GetItemChecked(i)= True Then
s= s&"项"&(i+ 1).ToString&"="& CheckedListBox1.Items(i).ToString& ControlChars.CrLf
End If
Next
MessageBox.Show(s)
End Sub
运行测试,把列表框中的第一、第四项选中,如图所示:
现在先点击第一个按钮,弹出的信息如下所示:
指示的项是在选中列表的索引
再单击第二个按钮,弹出的信息如下所示:
很明显,所指示的项索引是整个列表中的索引。
其他的你用事件自己搞定...
三、C#怎么将txt中的内容作为checkedListBox1的每一项
1. C#操作txt,使用的是流操作。主要用到的两个对象是StreamReader和StreamWriter。使用的对象方法是:ReadLine()一行一行读取和WriteLine()一行一行写入。
由于用到Stream对象,所以首先要引用System.IO命名空间:
using System.IO;
引用后,定义StreamReader和StreamWriter对象:
private StreamReader _rstream= null;
private StreamWriter _wstream= null;
定义完成后,只需在使用的时候进行初始化如:
_rstream= new StreamReader(spath, System.Text.Encoding.Default);//读取 spath参数为需要读取的txt文件路径
_wstream= new StreamWriter(spath);//保存 spath为文件保存的路径,有多个构造函数,可以指定文件是覆写还是追加。
初始化完成后,就可以调用方法对txt文件进行操作了,如下:
读文件:
_rstream.ReadLine()
写文件:
_wstream.Write(data);
_wstream.WriteLine();
读写完毕后,关闭释放对象
_rstream.Close();//读文件后关闭
_wstream.Flush();//写入流,并清理缓冲区
_wstream.Close();//写文件后关闭