我有两个checkedlistbox,其中的选择项分别从表1和表2中读出字段值f1、f2得到,现在我相每次从box1和box2中选一项或多项,然后把值填充到表3中,填充时,不仅只是f1和f2,还有表2中f2字段值对应的一行的其它字段,请问如何实现?
表1
f1值:a1 a2 a3
表2
f2 f3 f4
b1 c1 d1
b2 c2 d2
b3 c3 d3
box1中显示a1 a2 a3
box2中显示b1 b2 b3
当选中a1、a2和b1、b3时,向表3中写入内容为:
a1 b1 c1 d1
a1 b3 c3 d3
a2 b1 c1 d1
a2 b3 c3 d3
表3结构已建立:f1,f2,f3,f4
C#中checkedlistbox的用法
答案:2 悬赏:10
解决时间 2021-03-22 11:24
- 提问者网友:北故人
- 2021-03-21 22:29
最佳答案
- 二级知识专家网友:兮沫♡晨曦
- 2021-03-21 23:51
不知道你的表示listview还是dategridview
这个逻辑不难理解吧
循环获取box1中的选择项,对每项循环 添加 box2的选择内容
(当然是根据box2的选择值查询表2得到的详细值)
然后每次获得一行完整的表3项,就添加到表3
下面以listview 为例
listView3.Items.Clear();
for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
{//获得表1的选择值
for (int j = 0; j < checkedListBox2.CheckedItems.Count; j++)
{//获得表2的选择值
//新的表3的行
ListViewItem lvi = new ListViewItem();
lvi.Text = checkedListBox1.CheckedItems[i].ToString();
for (int k = 0; k < listView2.Items.Count; k++)
{//获得完整的表2 的值,并添加到ListViewItem
if (listView2.Items[k].Text == lvi.Text)
{
lvi.SubItems.Add(listView2.Items[k].SubItems[0].Text);
lvi.SubItems.Add(listView2.Items[k].SubItems[1].Text);
lvi.SubItems.Add(listView2.Items[k].SubItems[2].Text);
listView3.Items.Add(lvi);
break;//这里是跳出 int k = 0 这个循环
}
}
}
}
这个逻辑不难理解吧
循环获取box1中的选择项,对每项循环 添加 box2的选择内容
(当然是根据box2的选择值查询表2得到的详细值)
然后每次获得一行完整的表3项,就添加到表3
下面以listview 为例
listView3.Items.Clear();
for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
{//获得表1的选择值
for (int j = 0; j < checkedListBox2.CheckedItems.Count; j++)
{//获得表2的选择值
//新的表3的行
ListViewItem lvi = new ListViewItem();
lvi.Text = checkedListBox1.CheckedItems[i].ToString();
for (int k = 0; k < listView2.Items.Count; k++)
{//获得完整的表2 的值,并添加到ListViewItem
if (listView2.Items[k].Text == lvi.Text)
{
lvi.SubItems.Add(listView2.Items[k].SubItems[0].Text);
lvi.SubItems.Add(listView2.Items[k].SubItems[1].Text);
lvi.SubItems.Add(listView2.Items[k].SubItems[2].Text);
listView3.Items.Add(lvi);
break;//这里是跳出 int k = 0 这个循环
}
}
}
}
全部回答
- 1楼网友:滚刀废物浮浪人
- 2021-03-22 00:52
不知道你的表示listview还是dategridview
这个逻辑不难理解吧
循环获取box1中的选择项,对每项循环 添加 box2的选择内容
(当然是根据box2的选择值查询表2得到的详细值)
然后每次获得一行完整的表3项,就添加到表3
下面以listview 为例
listview3.items.clear();
for (int i = 0; i < checkedlistbox1.checkeditems.count; i++)
{//获得表1的选择值
for (int j = 0; j < checkedlistbox2.checkeditems.count; j++)
{//获得表2的选择值
//新的表3的行
listviewitem lvi = new listviewitem();
lvi.text = checkedlistbox1.checkeditems[i].tostring();
for (int k = 0; k < listview2.items.count; k++)
{//获得完整的表2 的值,并添加到listviewitem
if (listview2.items[k].text == lvi.text)
{
lvi.subitems.add(listview2.items[k].subitems[0].text);
lvi.subitems.add(listview2.items[k].subitems[1].text);
lvi.subitems.add(listview2.items[k].subitems[2].text);
listview3.items.add(lvi);
break;//这里是跳出 int k = 0 这个循环
}
}
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |