以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  删除ComboBox1列表项目  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=147749)

--  作者:良才
--  发布时间:2020/3/23 13:27:00
--  删除ComboBox1列表项目

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.rar


ComboBox1 Enter代码

 

Dim dt As DataTable
Dim cmd As New SQLCommand
cmd.CommandText = "Se lect 学生姓名 From {学生基本信息} a Inner JOIN {缴学费} b ON a.学生编号 = b.学生编号 Where 班级 = \'101\'"
dt = cmd.ExecuteReader()
Dim cmb As WinForm.ComboBox = e.Sender
cmb.ComboList= dt.GetComboListString("学生姓名")

ComboBox2 Enter代码

Dim dt As DataTable
Dim cmd As New SQLCommand
cmd.CommandText = "Se lect 学生姓名,b.学生编号 From {学生基本信息} a Inner JOIN {缴学费} b ON a.学生编号 = b.学生编号 Where 班级 = \'101\'"
dt = cmd.ExecuteReader()

Dim cmb As WinForm.ComboBox = e.Sender
cmb.ComboList= dt.GetComboListString("学生姓名","学生姓名 <> \'"& e.Form.Controls("ComboBox1").text &"\'")

ComboBox3列表项目中删除ComboBoX1、ComboBox2学生姓名,那么ComboBox3、ComboBox4.......ComboBox20....

求代码,谢谢!


--  作者:有点蓝
--  发布时间:2020/3/23 14:43:00
--  
Dim lst As new List(of String)
For i As Integer = 1 To 8
    If e.Form.Controls("Xm" & i).text > "" AndAlso "Xm" & i <> e.Sender.Name Then
        lst.Add(e.Form.Controls("Xm" & i).text)
    End If
Next

Dim dt As DataTable
Dim cmd As New SQLCommand
cmd.CommandText = "Select 学生姓名,b.学生编号 From {学生基本信息} a Inner JOIN {缴学费} b ON a.学生编号 = b.学生编号 Where 班级 = \'101\' and  学生姓名 not in (\'" & String.Join("\',\'", lst.ToArray) & "\')"
dt = cmd.ExecuteReader()

e.Sender.ComboList= dt.GetComboListString("学生姓名")

--  作者:良才
--  发布时间:2020/3/23 16:51:00
--  
谢谢
--  作者:良才
--  发布时间:2020/3/26 9:54:00
--  

老师我把代码写在窗口Enter出现错误,请老师指教,谢谢!

Dim ary() As String = Functions.Execute("Xueqi")
cmd.C
Dim cmb As WinForm.ComboBox = e.Sender
Dim lst As new List(of String)
For i As Integer = 1 To dt.DataRows.Count
    If e.Form.Controls("Xm" & i).text > "" AndAlso "Xm" & i <> e.Sender.Name Then
        lst.Add(e.Form.Controls("Xm" & i).text)
    End If
Next
cmd.CommandText = "Se lect 学生姓名,b.学生编号 From {学生基本信息} a Inner JOIN {缴学费} b ON a.学生编号 = b.学生编号 Where 学期 = \'"& ary(0) &"\' And 班级 = \'101\' and  学生姓名 not in (\'" & String.Join("\',\'", lst.ToArray) & "\')"
dt = cmd.ExecuteReader()
cmb.ComboList= dt.GetComboListString("学生姓名")


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20200326095057.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/3/26 9:55:30编辑过]

--  作者:有点蓝
--  发布时间:2020/3/26 9:59:00
--  
提示很明显了。放到组合框的enter,不是panel控件的enter
--  作者:良才
--  发布时间:2020/3/26 10:11:00
--  

我放窗口Enter的

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.rar

[此贴子已经被作者于2020/3/26 10:21:36编辑过]

--  作者:有点蓝
--  发布时间:2020/3/26 11:06:00
--  
判断一下控件类型,在执行代码:http://www.foxtable.com/webhelp/topics/1849.htm

If Typeof c Is WinForm.ComboBox Then \'判断控件是否是组合框

--  作者:良才
--  发布时间:2020/3/26 11:18:00
--  

速度非常慢

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.rar


--  作者:有点蓝
--  发布时间:2020/3/26 11:39:00
--  
写这么久代码,还停留在抄的阶段,抄完都不知道代码是在干啥的

If Typeof e.Sender Is WinForm.ComboBox Then
    Dim lst As new List(of String)
    For i As Integer = 1 To 8
        If e.Form.Controls("Xm" & i).text > "" AndAlso "Xm" & i <> e.Sender.Name Then
            lst.Add(e.Form.Controls("Xm" & i).text)
        End If
    Next
    Dim dt As DataTable
    Dim cmd As New SQLCommand
    cmd.CommandText = "Select 学生姓名,b.学生编号 From {学生基本信息} a Inner JOIN {缴学费} b ON a.学生编号 = b.学生编号 Where 班级 = \'101\' and  学生姓名 not in (\'" & String.Join("\',\'", lst.ToArray) & "\')"
    dt = cmd.ExecuteReader()
    e.Sender.ComboList= dt.GetComboListString("学生姓名")
End If

--  作者:良才
--  发布时间:2020/3/26 14:10:00
--  
谢谢