一个form窗体的load事件的问题

liujunbin9 2011-10-25 07:31:35
我在窗体的load事件中添加代码
ds.Clear()
da.Fill(ds, "班级")
ComboBox7.DataSource = ds.Tables("班级")
ComboBox7.DisplayMember = "班级"
MsgBox(ComboBox7.Text)

第一次点击按钮打开窗体,首先弹出正确班级,然后在ComboBox7中的选项也正确。关闭窗体,再一次点击按钮打开窗体,弹出空字符,然后ComboBox7中的选项居然也正确。原因出在哪里?我要他每次打开都能弹出班级。
...全文
153 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujunbin9 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 andywongz 的回复:]
DataSet包含DataTable
DataTable包含DataColumn和DataRow,一个是纵向一个是横向,能理解吧
DataRow包含具体的Item,也就是具体的值,相当于你说的单元格

访问时采用如下格式:
ds.Tables(i).Rows(j).Item(i)

里面的i是索引,你可以用整数也可以用名字,j必须用整数,因为行没有名字,只有index值
[/Quote]
哇塞!正解!牛!
老龙友 2011-10-25
  • 打赏
  • 举报
回复

DataSet包含DataTable
DataTable包含DataColumn和DataRow,一个是纵向一个是横向,能理解吧
DataRow包含具体的Item,也就是具体的值,相当于你说的单元格

访问时采用如下格式:
ds.Tables(i).Rows(j).Item(i)

里面的i是索引,你可以用整数也可以用名字,j必须用整数,因为行没有名字,只有index值
liujunbin9 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 andywongz 的回复:]

你把Text属性用在SQL语句里,不一定是在窗体载入的时候就用吧?应该是用户触发了某个操作时,而这已经是窗体显示以后了

即使你真的要在窗体载入时就要使用,那你这个ComboBox的Text就不一定是用户输入,而必定是初始化来的,那你就找到数据的来源来用就好了。
[/Quote]
是要在窗体载入时用,你的想法灰常正确“找数据的来源”。弱弱的问一句:“如何获取dataset中单元格的数据”。。。我刚在网上搜了,都是不是我这个版本,他们用的是“[]”,我用的是vs2010。。
老龙友 2011-10-25
  • 打赏
  • 举报
回复
你把Text属性用在SQL语句里,不一定是在窗体载入的时候就用吧?应该是用户触发了某个操作时,而这已经是窗体显示以后了

即使你真的要在窗体载入时就要使用,那你这个ComboBox的Text就不一定是用户输入,而必定是初始化来的,那你就找到数据的来源来用就好了。
老龙友 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liujunbin9 的回复:]

引用 3 楼 andywongz 的回复:

引用 2 楼 liujunbin9 的回复:

引用 1 楼 andywongz 的回复:

有些控件貌似一定要等到load之后才会处理,很奇怪

你把代码转移到 form_shown 事件里看一看

哇塞!牛!不过弹出班级的问题是解决了,但是弹出窗体的时候首先窗体全部都是白的,卡一下,然后才正常显示。这是什么原因?没那么流畅。
……
[/Quote]

你不一定要用Text属性吧,用SelectedItem属性试试
而且,你的ComboBox的DropDownStyle属性是怎么设置的?设置成DropDownList试试
liujunbin9 2011-10-25
  • 打赏
  • 举报
回复
奥~~还有~~为什么第一次没错呢?????这个问题我是怎么想都想不明白!百度都不知道该怎么百了。。
liujunbin9 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 andywongz 的回复:]

引用 2 楼 liujunbin9 的回复:

引用 1 楼 andywongz 的回复:

有些控件貌似一定要等到load之后才会处理,很奇怪

你把代码转移到 form_shown 事件里看一看

哇塞!牛!不过弹出班级的问题是解决了,但是弹出窗体的时候首先窗体全部都是白的,卡一下,然后才正常显示。这是什么原因?没那么流畅。


当然了,这相当于把你的这部分代码在窗体完……
[/Quote]
谢谢!正解啊!
http://social.msdn.microsoft.com/Forums/cs-CZ/2212/thread/f269f735-88a2-4cc6-92a8-d54f24d1f48a
可是我要用Text属性写sql语句啊。。
老龙友 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liujunbin9 的回复:]

引用 1 楼 andywongz 的回复:

有些控件貌似一定要等到load之后才会处理,很奇怪

你把代码转移到 form_shown 事件里看一看

哇塞!牛!不过弹出班级的问题是解决了,但是弹出窗体的时候首先窗体全部都是白的,卡一下,然后才正常显示。这是什么原因?没那么流畅。
[/Quote]

当然了,这相当于把你的这部分代码在窗体完全显示以后才执行。这并不是一个好的做法,我只是让你这样试一下以便排错。
对于ComboBox控件来说,它的Text属性貌似确实要等到Load结束时才载入,所以你要想想你为什么要用Text属性,能不能改用别的属性。也许可以更好地解决这个问题。
liujunbin9 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 andywongz 的回复:]

有些控件貌似一定要等到load之后才会处理,很奇怪

你把代码转移到 form_shown 事件里看一看
[/Quote]
哇塞!牛!不过弹出班级的问题是解决了,但是弹出窗体的时候首先窗体全部都是白的,卡一下,然后才正常显示。这是什么原因?没那么流畅。
老龙友 2011-10-25
  • 打赏
  • 举报
回复
有些控件貌似一定要等到load之后才会处理,很奇怪

你把代码转移到 form_shown 事件里看一看

16,555

社区成员

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

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