Как получить значение члена проверяемых элементов в элементе управления windows selectedboxbox? - PullRequest
1 голос
/ 29 июня 2011

я использую следующий код для привязки checkedlistbox в выигрышной форме. Я хочу получить значение элемента из отмеченных элементов в checklistbox?

Ответы [ 4 ]

3 голосов
/ 29 июня 2011

Я не знаю, что такое ListItem, но я полагаю, что это класс, который выглядит следующим образом:

public class ListItem
{
    public string Text;
    public object Value;

    public ListItem(string text, object value)
    { /*...*/ }
}

Итак, измените DisplayMember = "text"; на "Text" и ValueMember = "value"; на "Value":

chkListCategory.DisplayMember = "Text";//"text"; 
chkListCategory.ValueMember = "Value";//"value";

Текст в интерфейсе будет отображаться как «Производитель, Дилер, Дистрибьютор, ...»

И значения будут "1, 2, 3, ..."

Получить значение элемента проверенных элементов:

Чтобы получить значения проверенных позиций:

//first checked item.
var value = (chkListCategory.CheckedItems[0] as ListItem).Value;

//all checked items.
foreach (var value in chkListCategory.CheckedItems)
{
    Console.WriteLine((value as ListItem).Value);
}

//value at any index in the chkListCategory:
var value = (chkListCategory.Item[index] as ListItem).Value;
0 голосов
/ 08 октября 2017

Вот код для получения некоторых записей из базы данных и помещения их в CheckedListBox

SqlCommand cmd = new SqlCommand(@"SELECT Code, GenericName FROM tbl_Item", Connection);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        chklItems.DataSource = null; // chklItems is a CheckedListBox
        if (chklItems.Items.Count > 0)
            chklItems.Items.Clear();
        chklItems.DataSource = dt;
        chklItems.DisplayMember = "GenericName";
        chklItems.ValueMember = "Code";

Получить значение члена из проверенных позиций

for (int i = 0; i < chklItems.CheckedItems.Count; i++)
        {
            string code = ((DataRowView)chklItems.CheckedItems[i]).Row["Code"].ToString();
        }
0 голосов
/ 17 января 2015

Bind CheckedListBOx или любой другой элемент управления с displaymember и valuemember довольно прост, вам просто нужно указать свойство источника данных для элемента управления, а также displaymember и valuemember.

Following is working code 100 % work for me i have tested:

/* checkedlistbox bindig code */

DataSet ds = new DataSet();

string strChechboxlist = "select Subject_ID as code, SubjectName as Display from dbo.Mst_Subject_Detail";

/* filldataset() is function i have created to return dataset. */
ds = dc.FillDataSet(strChechboxlist);
if (ds.Tables[0].Rows.Count > 0)
{
checkedListBox1.DataSource = ds.Tables[0];
checkedListBox1.DisplayMember = "Display";
checkedListBox1.ValueMember = "code"; 

}

/* for fetching valuemember or displaymember from checkedlistbox */


for(int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
{

/*Now with the following code we can get valemember and displaymember as per your requirement you can store in table. */
DataRow r;
r = ((DataRowView)this.checkedListBox1.CheckedItems[i]).Row;
string val = (r[this.checkedListBox1.ValueMember]).ToString();
string dis = (r[this.checkedListBox1.DisplayMember]).ToString();
r = null;

}

Примечание: - Я прилагаю рабочую демонстрациюкод

0 голосов
/ 29 июня 2011
foreach(DataRowView view in chkListCategory.CheckedItems)
{
    Console.WriteLine(view[chkListCategory.ValueMember].ToString());
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...