c#.net 中comboBox问题
我想问一下,在窗体上有两个comboBox控件,假如comboBox1的下拉菜单中选择的是湖南,那么相应的comboBox2控件中只显示湖南的城市,如长沙,湘潭等,而不会...
我想问一下,在窗体上有两个comboBox控件,假如comboBox1的下拉菜单中选择的是湖南,那么相应的comboBox2控件中只显示湖南的城市,如长沙,湘潭等,而不会显示北京,上海等,哪位高手能跟我讲一下怎样用c#代码时下上述功能,谢谢!
展开
5个回答
展开全部
楼上的解答很好了,而且还有朋友提到数据库。
我这里提供从另一个角度的分析,希望可以抛砖引玉:
第一,楼主的问题涉及的是城市和省份的关系。我们都知道城市属于省份,而且一个省份可以有多个城市。所以,这里不妨使用城市对象和省份对象来分析。
第二,如何设计两种对象,即:两个类,省份类Province类和城市类City类。
(1)City类:从楼主的需求可以发现,只需要城市的名称。所以我们需要实体承载名称的属性,于是City类应运而生:
public class City
{
private string cityName;
public string CityName
{
get{ return cityName; }
set{ this.cityName = value; }
}
}
(2)省份类Province,包含多个City所以我们讲City集合或数组保存在省份中,当然省份依然有名称咯:
public class Province
{
private string proName;
private ArrayList<City> arrCity;
public string ProName
{
get{ return this.proName; }
set{ this.proName = value; }
}
public ArrayList<City> ArrCity
{
get{ return this.arrCity; }
set{ this.arrCity = value; }
}
}
第三,就是如何使用了,实际上我上面的类还可以设计得更好一些,比如:设计一个可以通过城市集合或数组构造省份的构造方法重载等。这里就省略了。
关键是ComboBox的应用了,ComboBox中是可以保存对象的。
我们可以先初始化城市对象的集合,然后分别初始化省份对象,把初始化好的省份对象全填入comboBox1中,这样的好处是:comboBox1中不再保存干涩的省份名称数据而是以一个类似国家的身份保存了多个省份对象。
ComboBox有一个DisplayMember属性,该属性对应ComboBox中DataSource集合中元素的属性。通过它我们就可以查看我们需要的对象的信息了。
同理,当选中一个省份时我们等于选中一个省份,此时只要把省份中的集合赋给comboBox2就可以了,依旧用DisplayMember来显示城市名称就可以了。
以上是我的一些想法,是不是更贴近ooa的思想呢?还请大家踊跃讨论啊。*^-^*
我这里提供从另一个角度的分析,希望可以抛砖引玉:
第一,楼主的问题涉及的是城市和省份的关系。我们都知道城市属于省份,而且一个省份可以有多个城市。所以,这里不妨使用城市对象和省份对象来分析。
第二,如何设计两种对象,即:两个类,省份类Province类和城市类City类。
(1)City类:从楼主的需求可以发现,只需要城市的名称。所以我们需要实体承载名称的属性,于是City类应运而生:
public class City
{
private string cityName;
public string CityName
{
get{ return cityName; }
set{ this.cityName = value; }
}
}
(2)省份类Province,包含多个City所以我们讲City集合或数组保存在省份中,当然省份依然有名称咯:
public class Province
{
private string proName;
private ArrayList<City> arrCity;
public string ProName
{
get{ return this.proName; }
set{ this.proName = value; }
}
public ArrayList<City> ArrCity
{
get{ return this.arrCity; }
set{ this.arrCity = value; }
}
}
第三,就是如何使用了,实际上我上面的类还可以设计得更好一些,比如:设计一个可以通过城市集合或数组构造省份的构造方法重载等。这里就省略了。
关键是ComboBox的应用了,ComboBox中是可以保存对象的。
我们可以先初始化城市对象的集合,然后分别初始化省份对象,把初始化好的省份对象全填入comboBox1中,这样的好处是:comboBox1中不再保存干涩的省份名称数据而是以一个类似国家的身份保存了多个省份对象。
ComboBox有一个DisplayMember属性,该属性对应ComboBox中DataSource集合中元素的属性。通过它我们就可以查看我们需要的对象的信息了。
同理,当选中一个省份时我们等于选中一个省份,此时只要把省份中的集合赋给comboBox2就可以了,依旧用DisplayMember来显示城市名称就可以了。
以上是我的一些想法,是不是更贴近ooa的思想呢?还请大家踊跃讨论啊。*^-^*
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你数据库里面肯定应该有两张表,一个是存城市的,一个是存省的
且在城市表中应该有所属省的ID,我们就通过省市的这个关系ID来进行这个程序的设计:
我们在省的ComboBox1中绑定省的名称和ID,在其SelectChange事件中取得当前所选定的省的ID,然后再根据这个ID到城市表中去查找对应的市的ID,然后把结果集返回绑定到ComboBox2上
且在城市表中应该有所属省的ID,我们就通过省市的这个关系ID来进行这个程序的设计:
我们在省的ComboBox1中绑定省的名称和ID,在其SelectChange事件中取得当前所选定的省的ID,然后再根据这个ID到城市表中去查找对应的市的ID,然后把结果集返回绑定到ComboBox2上
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库表两个
t_province
字段:
ID(省份ID)、NAME(省份名称)
t_city
字段:
ID(城市ID)、PID(所属省份的ID)、NAME(城市名称)
comboBox1的onchange时间中 读取数据库t_city中PID属于该省份(comboBox1)的所城市 然后绑定到comboBox2中
注意:(ID绑定value、NAME绑定text)。
需要具体代码的找我……没现成的
需要的话给你写……
t_province
字段:
ID(省份ID)、NAME(省份名称)
t_city
字段:
ID(城市ID)、PID(所属省份的ID)、NAME(城市名称)
comboBox1的onchange时间中 读取数据库t_city中PID属于该省份(comboBox1)的所城市 然后绑定到comboBox2中
注意:(ID绑定value、NAME绑定text)。
需要具体代码的找我……没现成的
需要的话给你写……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
comboBox控件有onchange这个方法.
当 comboBox1改变时, 加载 comboBox1的值对应的comboBox2的值
当 comboBox1改变时, 加载 comboBox1的值对应的comboBox2的值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询