以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- listview怎么实现与文本框结合,实现模糊筛选? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47992)
|
-- 作者:永不言弃
-- 发布时间:2014/3/21 0:05:00
-- listview怎么实现与文本框结合,实现模糊筛选?
listview怎么实现与文本框结合,实现模糊筛选?
For Each dr As DataRow In DataTables("配方信息表").Select("花号 Like \'*-8\'") \'从数据表中提取数据
能不能这个8字让客户自己输入选择.不知道怎么写.
|
-- 作者:lsy
-- 发布时间:2014/3/21 8:06:00
--
For Each dr As DataRow In DataTables("配方信息表").Select("花号 Like \'*" & e.Form.Controls("TextBox1").Text & "\'")
|
-- 作者:永不言弃
-- 发布时间:2014/3/21 22:01:00
--
帮助是写在窗口AfterLoad事件,但这样显然不合适了,那要写在哪个事件中呢,LISTVIEW申明的变量又多.
窗口的AfterLoad事件代码设置为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
Dim lvw1 As WinForm.ListView = e.Form.Controls("ListView1") \'员工列表 Dim lvw2 As WinForm.ListView = e.Form.Controls("ListView2") \'活动一参与者列表 Dim lvw3 As WinForm.ListView = e.Form.Controls("ListView3") \'活动二参与者列表 Dim
lvws() As
Winform.ListView = {lvw1,lvw2,lvw3}
\'看看我们是怎样批量设置某组控件属性的 For
Each
lvw
As
WinForm.ListView
In
lvws lvw.View = ViewMode.List lvw.AllowDrag = True lvw.AllowDrop = True lvw.Images.AddSmallImage("Man", "Man.ico") \'添加代表男性的一对图标 lvw.Images.AddSmallImage("Woman", "Woman.ico") \'添加代表女性的一对图标 Next For
Each
dr
As
DataRow
In
DataTables("员工").Select("","性别") \'列出所有员工 Dim
vr
As
WinForm.ListViewRow = lvw1.Rows.Add() vr.Text = dr("姓名") vr.Name = dr("姓名") \'将ListViewRow的Name属性设置为员工姓名 If
dr("性别") = "男"
Then vr.ImageKey = "Man" Else vr.ImageKey = "Woman" End
If Next Dim nms() As String = DataTables("活动").DataRows(0)("参与者").Split(",") \'列出活动一参与者 For Each nm As String In nms If nm > "" Then Dim vr As WinForm.ListViewRow = lvw2.Rows.Add() vr.Text = nm vr.Name = nm vr.ImageKey = lvw1.Rows(nm).ImageKey \'从员工列表(ListView1)获取此员工的图标键值 End If Next nms = DataTables("活动").DataRows(1)("参与者").Split(",") \'列出活动二参与者 For Each nm As String In nms If nm > "" Then Dim vr As WinForm.ListViewRow = lvw3.Rows.Add() vr.Text = nm vr.Name = nm vr.ImageKey = lvw1.Rows(nm).ImageKey \'从员工列表(ListView1)获取此员工的图标键值 End If Next |
上面的代码中,我首先请你留意第4行到第11行的代码,当我们需要对一组控件进行相同的设置时,可以用这种方法减少代码量;其次留意第15行代码,此行代码将员工列表(ListView1)中的行的Name属性设置为对应员工的姓名,这样我们可以在28、37这两行代码通过员工姓名获取ListView1中这个员工对应的行,然后获取此行的ImageKey属性,并赋值给活动参与者(ListView2和ListView3)中对应行的ImageKey属性。
2、ListView2(活动一参与者)的BeforeDropRow事件代码设置为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Dim
lvw
As
WinForm.ListView = e.Sender If
lvw.Rows.Count >= 3 AndAlso
e.Source.Name <> lvw.Name
Then
\'如果已经有三人,而且是从其他ListView拖动过来. Messagebox.show("每项活动最多允许三人参与!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) e.Cancel = True \'取消本次拖动 Return End
If If
e.Source.Name = "ListView1"
\'如果是从员工列表中拖过来的行 e.Delete = False
\'不要删除原来的项目 End
If Dim
itm
As
WinForm.ListViewRow = e.Source.Rows(e.OldIndex) \'获取要拖动过来的行 If
e.Source.Name <> e.Sender.Name
Then
\'如果是从其他ListView中拖动过来的 If
e.Sender.Rows.Contains(itm.Name) \'判断活动一是否已经包括此员工 MessageBox.Show("此员工已经报名参加活动一,无需重复报名!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) e.Cancel = True \'取消本次拖动 End
If End
If |
[此贴子已经被作者于2014-3-21 22:02:57编辑过]
|
-- 作者:永不言弃
-- 发布时间:2014/3/21 22:20:00
--
此主题相关图片如下:qq图片20140321220719.jpg
简单的说就是要把左边的图片经过筛选后,拖到右边的详细订单中,因为左边的图片太多了,所以必须经过筛选.我们的行业是以花型图片来管理数据的.
[此贴子已经被作者于2014-3-21 23:47:10编辑过]
|
-- 作者:lsy
-- 发布时间:2014/3/22 7:46:00
--
做个简单的例子,能说明问题、能测试就行,大家帮你看看。
|
-- 作者:永不言弃
-- 发布时间:2014/3/22 9:33:00
--
谢谢老师,等下上例子.
|
-- 作者:永不言弃
-- 发布时间:2014/3/22 21:22:00
--
上个例子,老师们帮我看下,怎么才能把经过筛选后的左侧图片,拖到右边的LISTVIEW2
并把图片的花号信息(13-2222-4)导入到表B花号例,按序添加.谢谢了,头都大了.
|
-- 作者:lsy
-- 发布时间:2014/3/23 11:05:00
--
新控件,不熟悉,做起来好难,总算做出来了。
[此贴子已经被作者于2014-3-23 11:51:58编辑过]
|
-- 作者:永不言弃
-- 发布时间:2014/3/23 12:04:00
--
谢谢老师,下来看看.
|
-- 作者:永不言弃
-- 发布时间:2014/3/23 12:11:00
--
能不能给我试用版啊,我打不开啊.刚学不久啊.
|