我在form2(clbForm2)中有一个checkedlist框,我明确地将它映射到项目检查事件.现在我需要从form2中取消选中Form1中控件的所有选中项.在取消选中项目时,它会触发项目检查事件.有没有办法跳过这个事件.我在其中编写代码,我不想在从form2调用时运行.请建议一个好方法.
我需要一些帮助,而且我的头撞在墙上.我有一个使用三态的应用程序CheckedListBox
.我将这三种状态用于特定目的:
已检查表示技术执行了操作未选中表示技术人员未执行操作"不确定"表示技术人员未执行操作,因为这是不必要的.
我需要能够切换,鼠标从Checked到Unchecked到Indeterminate to Checked.如果我正在使用a CheckBox
并且ThreeState
被设置为True
,那么这正是将要发生的事情,但似乎在CheckedListBox
通过代码设置Indeterminate状态的唯一方法.
有人能告诉我该做什么吗?令我难以置信的是,这不是你可以设置的财产CheckBox
.
我认为是什么让我觉得以前似乎没有人需要这个功能.我在Google上没有发现任何人如何做到这一点,或者提出问题.
如何编写这样的 C# winforms 代码?
CheckedListBox 项没有“Tag”和“ValueMember”属性。
我知道有很多替代方案。但我需要以这种方式工作。
private void LoadPermissionsToCheckedListBox()
{
Role selectedRole = (Role)comboBox1.SelectedItem;
int i = 0;
foreach (Permission p in selectedRole.PermissionItems)
{
checkedListBox1.Items.Add(p);
checkedListBox1.Items[i].Tag = p;
}
checkedListBox1.DisplayMember = "PermissionKey";
checkedListBox1.ValueMember = "PermissionID";
}
Run Code Online (Sandbox Code Playgroud) 我有一个方法从数据库中提取URL名称(varchar),urlID(int)及其Enabled status(位),并将结果填充到foreach循环上的CheckedListBox.我遇到的问题是checkboxlist似乎只取一个名称及其检查状态.我需要做的是当用户完成对按钮事件的选择时,它会读取CheckedListBox并获取URL ID,并启用状态,以便我可以将其写回数据库.
这是我正在使用的代码:
/// <summary>
/// Create url names in check box list.
/// </summary>
/// <param name="rows"></param>
private void CreateURLCheckBoxes(DataRowCollection rows)
{
try
{
int i = 0;
foreach (DataRow row in rows)
{
//Gets the url name and path when the status is enabled. The status of Enabled / Disabled is setup in the users option page
string URLName = row["URLName"].ToString();
int URLID = Convert.ToInt32(row["URLID"]);
bool enabled = Convert.ToBoolean(row["Enabled"]);
//Adds the returned to rows to the check …
Run Code Online (Sandbox Code Playgroud) 我目前有一个带有几个框的CheckedListBox.我希望能够测试列表中的每个Checkbox以查看它是否已被选中,如果是,则将其文本值(CheckBox.Text)添加到字符串列表中.
这是我有的:
for ( int i = 0; i < multiTaskChecks.Items.Count; i++ )
{
if ( multiTaskChecks.GetItemChecked(i) )
{
checkedMultiTasks.Add(multiTaskChecks.GetItemText(i));
}
}
Run Code Online (Sandbox Code Playgroud)
使用它,GetItemText
返回0,1,2,3等,而不是我所追求的文本值.我也尝试过CheckedListBox.Text.IndexOf(i)
,CheckedListBox.Text.ToList()
每个人都没有运气.
我只是无法从CheckedListBox获取其中一个CheckBox的标签文本.任何有关这方面的帮助将非常感激.
我正在尝试维护一个已检查项目的列表 CheckedListBox
用户设置然后在应用程序加载时重新加载它们.
在我的Settings.settings
文件中,我添加了以下内容:
<Setting Name="obj" Type="System.Windows.Forms.CheckedListBox.ObjectCollection" Scope="User">
<Value Profile="(Default)" />
</Setting>
Run Code Online (Sandbox Code Playgroud)
而且,chkList_ItemCheck
我正在做以下事情:
Properties.Settings.Default.obj = chkList.Items;
Properties.Settings.Default.Save()
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,当我退出应用程序,重新打开,并检查其值Properties.Settings.Default.obj
,它是null
.
我做错了什么/错过了什么?
我们正在开发一个使用MVVM架构风格 ( WPF )的应用程序,但遇到了一个问题。在使用WPF之前,我们使用过WinForms并使用过CheckedListBox。但是现在我们在WPF 中找不到这样的控件。我们也在使用Infragistic工具包。
我在Winforms应用程序中有一个CheckedListBox,其中包含Months as Items(如1月,2月,3月等).我正在尝试实现以下功能:当任何项目被选中时,应弹出一条消息,说明它已被检查.当取消选中相同的项目时,该消息应该说它已取消选中.我已经尝试过下面的代码,但它不能按原样运行.目前,当选中或取消选中任何项目时,将显示相同的消息集.
CheckOnClick =真
private void clbMonthly_SelectedIndexChanged(object sender, EventArgs e)
{
if (clbMonthly.GetItemChecked(1) == true)
{
MessageBox.Show("Item 1 checked");
}
else
{
MessageBox.Show("Item 1 unchecked");
}
//........
}
Run Code Online (Sandbox Code Playgroud)
我希望你理解我的问题.请在c#中建议正确的代码.提前致谢
我尝试像这样设置 CheckedListBox 的 DataSource:
private void Form1_Load(object sender, EventArgs e)
{
checkedListBox1.DisplayMember = "Name";
checkedListBox1.ValueMember = "Checked";
_bindingList = new BindingList<CustomBindingClass>(
new List<CustomBindingClass>
{
new CustomBindingClass {Checked = CheckState.Checked, Name = "Item1"},
new CustomBindingClass {Checked = CheckState.Checked, Name = "Item2"},
new CustomBindingClass {Checked = CheckState.Unchecked, Name = "Item3"},
});
checkedListBox1.DataSource = _bindingList;
}
Run Code Online (Sandbox Code Playgroud)
它正在工作,但部分有效。我稍后可以做以下事情
_bindingList.RemoveAt(0);
Run Code Online (Sandbox Code Playgroud)
或_bindingList[0].Name = "TestTest";
和 CheckedListBox 更新良好,但未检查项目。这不起作用
_bindingList[0].Checked=CheckState.Checked;
Run Code Online (Sandbox Code Playgroud)
Checked
我还测试了当我的属性为bool 类型时执行此操作CustomBindingClass
,但也不起作用。有什么建议应该是什么类型的ValueMember
财产吗?
我在C#中的检查列表框中显示对象时遇到问题.我可以添加对象,但是当对象显示给用户时,程序会将复选框选择输出为Salesform.order,而不是像我想要的那样在订单类中调用tostring方法.这导致多个订单显示为相同的东西:"Salesform.order".
orderCheckList.Items.Add(orderUp);
Run Code Online (Sandbox Code Playgroud)
(这里,orderUp是一个带有客户名称等字段的订单)
有人可以帮忙吗?我知道有一个简单的解决方案,我忽略了.
checkedlistbox ×10
c# ×7
winforms ×6
.net ×5
controls ×1
data-binding ×1
infragistics ×1
list ×1
mdi ×1
mvvm ×1
tags ×1
valuemember ×1
vb.net ×1
wpf ×1