问个VB.netCombobox 联动问题!

llkj0768 2009-07-08 10:13:50
用的是VB.net
想做这样的效果
Combobox1为省份选择
Combobox2为城市选择
在选择省份后Combobox2自动出现与省份对应的城市
这个代码不怎么写啊?
不用数据库!直接代码!
有谁愿意给个参考!
...全文
55 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
rickylee917 2011-12-11
  • 打赏
  • 举报
回复





Public Class Form1
Private gRegion As New Region

Private Sub FormMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.ComboBoxProvince.DropDownStyle = ComboBoxStyle.DropDownList
Me.ComboBoxCity.DropDownStyle = ComboBoxStyle.DropDownList
Me.ComboBoxTown.DropDownStyle = ComboBoxStyle.DropDownList

With Me.ComboBoxProvince
.DataSource = gRegion.ProvinceTable
.DisplayMember = "Name"
.ValueMember = "ID"
End With
End Sub

Private Sub ComboBoxProvince_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles comboboxprovince.SelectedValueChanged
If Me.ComboBoxProvince.SelectedValue Is Nothing Then Return

With Me.ComboBoxCity
.DataSource = gRegion.GetCities(Me.ComboBoxProvince.SelectedValue.ToString)
.DisplayMember = "Name"
.ValueMember = "ID"
End With
End Sub

Private Sub ComboBoxCity_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles ComboBoxCity.SelectedValueChanged
If Me.ComboBoxCity.SelectedValue Is Nothing Then Return

With Me.ComboBoxTown
.DataSource = gRegion.GetTowns(Me.ComboBoxCity.SelectedValue.ToString)
.DisplayMember = "Name"
.ValueMember = "ID"
End With
End Sub
End Class

Public Class Region
Private gProvinceTable As DataTable
Private gCityTable As DataTable
Private gTownTable As DataTable

Sub New()
gProvinceTable = New DataTable("Provice")
With gProvinceTable
.Columns.Add("ID")
.Columns.Add("Name")
.PrimaryKey = New DataColumn() {.Columns("ID")}
End With

gCityTable = New DataTable("City")
With gCityTable
.Columns.Add("ID")
.Columns.Add("Name")
.Columns.Add("ProvinceID")
.PrimaryKey = New DataColumn() {.Columns("ID")}
End With

gTownTable = New DataTable("Town")
With gTownTable
.Columns.Add("ID")
.Columns.Add("Name")
.Columns.Add("CityID")
.PrimaryKey = New DataColumn() {.Columns("ID")}
End With

With gProvinceTable.Rows
.Add(New Object() {"01", "河北省"})
.Add(New Object() {"02", "山西省"})
End With

With gCityTable.Rows
.Add(New Object() {"001", "石家庄市", "01"})
.Add(New Object() {"002", "唐山市", "01"})
.Add(New Object() {"003", "太原市", "02"})
.Add(New Object() {"004", "大同市", "02"})
End With

With gTownTable.Rows
.Add(New Object() {"00001", "井陉县", "001"})
.Add(New Object() {"00002", "正定县", "001"})
.Add(New Object() {"00003", "滦 县", "002"})
.Add(New Object() {"00004", "滦南县", "002"})
.Add(New Object() {"00005", "清徐县", "003"})
.Add(New Object() {"00006", "阳曲县", "003"})
.Add(New Object() {"00007", "阳高县", "004"})
.Add(New Object() {"00008", "天镇县", "004"})
End With

gProvinceTable.AcceptChanges()
gCityTable.AcceptChanges()
gTownTable.AcceptChanges()
End Sub

Public ReadOnly Property ProvinceTable() As DataTable
Get
Return gProvinceTable
End Get
End Property

Public ReadOnly Property CityTable() As DataTable
Get
Return gCityTable
End Get
End Property

Public ReadOnly Property TownTable() As DataTable
Get
Return gTownTable
End Get
End Property

Public Function GetCities(ByVal provinceID As String) As DataView
Return New DataView(Me.CityTable, String.Format("ProvinceID = '{0}'", provinceID), "ID", DataViewRowState.CurrentRows)
End Function

Public Function GetTowns(ByVal CityID As String) As DataView
Return New DataView(Me.TownTable, String.Format("CityID = '{0}'", CityID), "ID", DataViewRowState.CurrentRows)
End Function

End Class

16,552

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧