我有DataTable
以下结构:
ID | VALUE
----------------
1 | Item 1
2 | Item 2
3 | Item 3
Run Code Online (Sandbox Code Playgroud)
和我显示从该值DataTable
成CheckedListBox
通过将每一行视为一个项目的控制.
但是我如何包含身份证?是否有"DisplayMember"和"ValueMember",如CheckedListBox控件的属性?
我在我正在使用的小应用程序中使用CheckedListBox控件.这是一个很好的控制,但有一件事困扰我; 我无法设置属性,以便在我实际选中复选框时仅检查项目.克服这个问题的最佳方法是什么?我一直在考虑从复选框的左侧获取鼠标点击的位置.这部分工作,但如果我点击一个空的空格,左边足够靠近,仍然会检查当前所选项目.关于这个的任何想法?
我之前填充了CheckedListBox.我希望通过CheckedListBox中的所有项循环"for each/next",并对checkedlistbox的每个迭代元素执行大量"填充"操作.
示例代码:
For Each item In CheckedListBox1.Items
If item.Checked = True Then
'do stuff like
item.BackColor = Color.Blue
Else
'do other stuff
item.BackColor = Color.Brown
End If
Next
Run Code Online (Sandbox Code Playgroud)
问题是"对象"类型而不是"控件"类型.如果我强制迭代var为CheckBox,它会抛出一个InvalidCastException,说'System.String'类型不能与'System.Windows.Forms.CheckBox'类型相关联
我知道我可以很容易地解决这个问题,但是我想在每个/下一个循环中使用a,因为我在该循环中有很多代码(而且不能使用)并且总是直接指向对象是我希望的避免,我真的需要代码尽可能简单.
我实际上花了一个下午寻找这个,但找不到任何答案.
我有一个CheckedListBox
必然的DataTable
.现在我需要以编程方式检查一些项目,但我发现该SetItemChecked(...)
方法只接受项目索引.
有没有一种实用的方法来通过文本/标签获取项目,而不知道项目索引?
(注意:我对WinForms的经验有限......)
我需要循环检查列表框,对于其中的每个项目,我需要检查它们(基本上像"全选"功能).
有没有一个基本的例子可以帮我解决一下?
我有一个X类型的列表.X是一个属性级别类.现在在一个事件上,我需要将CheckedListBox Selected Items放入另一个List中.
如何获得输出...... ?? 我试过的代码如下:
public void Initialize(List<X> x1)
{
chkList.DataSource = x1;
chkList.DisplayMember = "MeterName"; // MeterName is a property in Class X
chkList.ValueMember = "PortNum"; // PortNum is a property in Class X
}
private void Click_Event(object sender, EventArgs e)
{
List<X> x2 = new List<X>();
// Here I want to get the checkedListBox selected items in x2;
// How to get it...???
}
Run Code Online (Sandbox Code Playgroud) 是否可以添加checkedListBox
项目的值和标题
checkedListBox1.Items.Insert(0,"title");
Run Code Online (Sandbox Code Playgroud)
如何添加还有价值?
如何允许用户单击一次单击以检查项目CheckedListBox
?默认行为是第一次单击选择项目,第二次单击允许您切换检查.我也不想在选择上切换支票,我正在寻找ListView
控件的行为,我可以直接点击复选框来切换它们而不先选择它们的项目.
我目前正在开发一个Window应用程序,它使用CheckedListBoxes来实现程序的某些方面.我遇到的一个问题是,我一直在尝试查找项目被选中时触发了哪个事件,这样我就可以在选中任何列表项时启用表单按钮.
问题是我尝试使用以下内容;
private void clbAvailMods_ItemCheck(object sender, ItemCheckEventArgs e)
{
if(e.NewValue == CheckState.Checked)
{
btnInstall.Enabled = true;
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我在if语句上设置断点时,它永远不会在检查列表框中的项目时触发.
我在这里做错了吗?
我只是想要用于Windows Forms的CheckListBox.
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
起初这似乎有效,但存在许多问题.简而言之,它就像CheckBox漂浮在真实项目上,而不是CheckBox是项目.
我的意思是,(1)单击复选框的文本将不会选择ListBox项目,(2)按向上和向下键不会聚焦复选框.我必须单击复选框才能聚焦它.我搜索过谷歌的解决方案,但没有干净的解决方案.我想要太多了吗?
我只想要CheckedListBox的行为......
我通过处理复选框的PreviewMouseDown事件并手动选择项目来解决(1)问题.它看起来不干净.