我的Checked List Box有问题。
public void GetFolder()
{
var dict = new Dictionary<string, string>();
foreach (Folder folder in rootfolder.FindFolders(new FolderView(100)))
{
dict.Add(folder.Id.ToString(),folder.DisplayName);
}
checkedListBox1.DataSource = new BindingSource(dict, null);
checkedListBox1.DisplayMember = "Value";
checkedListBox1.ValueMember = "Key";
}
现在我想要获取所有Checked List框,
我用
做到这一点 foreach (object item in checkedListBox1.CheckedItems)
{
lala = lala + item +"|";
}
我的CheckedListbox向我显示了CheckIcon和我从Directory中读取的所有文件夹的名称,我现在想要存储tie文件夹.Id在某些设置中但只有ID但我总是将Foldername和ID放在一起。< / p> 希望有人可以帮助我 也许我的眼睛上有一些西红柿:)
答案 0 :(得分:1)
public void GetFolder()
{
var dict = new Dictionary<string, string>();
ArrayList arr = new ArrayList();
foreach (Folder folder in rootfolder.FindFolders(new FolderView(100)))
{
dict.Add(folder.Id.ToString(),folder.DisplayName);
arr.Add(folder.Id.ToString());
}
checkedListBox1.DataSource = new BindingSource(dict, null);
checkedListBox1.DisplayMember = "Value";
checkedListBox1.ValueMember = "Key";
//Do whatever to arraylist..
}
这将为您提供一个包含所有ID的数组列表。您可以将其绑定到源,或运行foreach
循环以获取所有项目。
答案 1 :(得分:1)
我假设lala是你的设置字符串。
如果是这种情况,请使用:
lala = lala + item.Value.ToString() +"|";
这样,lala将包含所有这样的ID: 1 | 2 | 34 | 567 | 5 ...
答案 2 :(得分:1)
好的,试试这个:
ArrayList folders=new ArrayList();
foreach (Folder folder in rootfolder.FindFolders(new FolderView(100)))
{
folders.Add(folder);
}
checkedListBox1.DataSource = folders;
checkedListBox1.DisplayMember = "DisplayName";
checkedListBox1.ValueMember = "Id";
foreach (Folder item in checkedListBox1.CheckedItems)
{
lala += item.Id.ToString() +"|";
}
答案 3 :(得分:1)
也许我有一个解决方案。
我使用DataTable而不是Dictionary
DataTable table = new DataTable();
table.Columns.Add("Name",typeof(string));
table.Columns.Add("Key", typeof(string));
table.Rows.Add("ID1=", "Folder1");
table.Rows.Add("ID2=", "Folder2");
table.Rows.Add("ID3=", "Folder3");
table.Rows.Add("ID4=", "Folder4");
table.Rows.Add("ID5=", "Folder5");
table.Rows.Add("ID6=", "Folder6");
现在取消单击我收到的所有选定项目
foreach(checkedListBox1.CheckedItems中的DataRowView objDataRowView) { MessageBox.Show(“我的值:”+ objDataRowView [“Name”]); }
仅我的ID回复:)
答案 4 :(得分:0)
试试这个
foreach (object item in checkedListBox1.CheckedItems)
{
DictionaryEntry de = (DictionaryEntry)item;
string htKey = de.Key.ToString();
}
答案 5 :(得分:0)
在你的foreach中,创建一个var项而不是object - 之后你就可以访问Value属性了。
答案 6 :(得分:0)
我测试了一个新项目。 :) 所以,如果出现问题,没问题* g
private void button1_Click(object sender,EventArgs e) {
var dict = new Dictionary<string, string>();
dict.Add("aQYCeWGlY9aKLAQANCS+7ujPFQpP5KZ/ydAp2AAAAEaCNAAA=", "Folder1");
dict.Add("HF§CeWGlY9aKLAQATKJZ63wo8TpT3xtDFVRdrAAAAANsVAAA=", "Folder2");
dict.Add("AAAAAACTXZc0AXhaQYCeWGlY9aKLAQH8KxFhrAAAARAi9AAA=", "Folder3");
dict.Add("AAAAAACTXZc0AXhaQYCeWGlY9aKLAQv+KxFhrAAAARAi+BBB=", "Folder4");
dict.Add("AlY9aKLAQC9TICb7ytCSbvH6E+KxFhrHd8883AAAARAjAAAA=", "Folder5");
dict.Add("AAMkADE5YmIwZDA3LTdjMzAtNDZlOS04MDc3LAAAAEaCNAAA=", "Folder6");
checkedListBox1.DataSource = new BindingSource(dict,null);
checkedListBox1.DisplayMember = "Value";
checkedListBox1.ValueMember = "Key";
}
点击我的checkedListBox1显示我, 文件夹1 文件夹2 Folder3
我如何只阅读所有选定项目的按键? 我想存储一个重新启动的应用程序集,检查存储的文件夹ID
private void button2_Click(object sender,EventArgs e) { int allDirCount = checkedListBox1.CheckedItems.Count;
foreach (var item in checkedListBox1.CheckedItems)
{
}
textBox3.Text = allDirCount.ToString();
}
如果我检查一些文件夹一个klick Button2 我得到了所有选定的项目,但有Foldernames :(
其他一些想法?
答案 7 :(得分:0)
//这是一个简单的方法[我是编码的新手]。
// CheckedListBox可以以DataRowView
的形式检索CheckedItems//对于CheckedListBox,确保您的数据源也传递了一个&#34; ID&#34;值。
//设置CheckedListBox的数据源
var dict = new Dictionary<string, string>();
foreach (Folder folder in rootfolder.FindFolders(new FolderView(100)))
{
dict.Add(folder.Id.ToString(),folder.DisplayName);
}
checkedListBox1.DataSource = new BindingSource(dict, null);
checkedListBox1.DisplayMember = "Value"; //This will be the folders display name in the check box
checkedListBox1.ValueMember = "Key"; // this will be the folder's ID
//创建一个列表来保存所有选定的ID
List<string> ListOfCheckedIDs = new List<string>();
//现在将CheckedListBox中的所有CheckedItem作为DataRowView获取,并使用包含文件夹ID的ValueMember将文件夹ID添加到ListOfCheckedIDs
foreach (DataRowView drowVw in checkedListBox1.CheckedItems)
{
ListOfCheckedIDs.Add(drowVw[checkedListBox1.ValueMember].ToString());
}
//现在在ListOfCheckedIDs上使用string.join,这样就不会有不想要的尾随字符
string myStringOfIDs = string.Join("|", ListOfCheckedIDs);