程序如下:
Private Sub retu_input_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
OleDb_retuinput_quest_retu.Fill(DataSet_retuinput_quest_retu1)
Binding_retuinput_qeust_retu.AddNew()
Tex_retu_input_saledate.Text = retu.saledate
Tex_retu_input_customer.Text = retu.customer
Tex_retu_input_saleprice.Text = retu.price
Tex_retu_input_blno.Text = retu.blno
Tex_retu_input_comid.Text = retu.comid
tex_retuinput_retu_date.Text = Today.Date
stop
Dim comid As String
comid = Tex_retu_input_comid.Text
OleDb_retuinput_commodity.SelectCommand.CommandText = "select * from commodity where [com_id] like '%" + comid + "%'"
OleDb_retuinput_commodity.Fill(DataSet_retuinput_commodity1)
Pic_commodity.ImageLocation = Application.StartupPath + "/pictures/" + Tex_commodity_pic.Text
End Sub
以上程序在语法上是没有错误的,而且在stop检查时各text控件都是有数据的,而且在下面的 comid 变量赋值及相应的检索操作都是正确的。但界面中的text框就是没有显示,而且如果在stop位置加上对OleDb_retuinput_quest_retu的数据库update操作会发现对数据库的数据添加都不成功(以上的text控件都绑定了OleDb_retuinput_quest_retu中的字段,正常情况下当text中的text属性变化时可以添加OleDb_retuinput_quest_retu中相应字段的数据。)
*其中的 tex_retuinput_retu_date.Text = Today.Date 这个可以正常显示
后来把以上程序更改为:
Private Sub retu_input_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
Tex_retu_input_saledate.Text = retu.saledate
Tex_retu_input_customer.Text = retu.customer
Tex_retu_input_saleprice.Text = retu.price
Tex_retu_input_blno.Text = retu.blno
Tex_retu_input_comid.Text = retu.comid
tex_retuinput_retu_date.Text = Today.Date
Dim comid As String
comid = Tex_retu_input_comid.Text
OleDb_retuinput_commodity.SelectCommand.CommandText = "select * from commodity where [com_id] like '%" + comid + "%'"
OleDb_retuinput_commodity.Fill(DataSet_retuinput_commodity1)
Pic_commodity.ImageLocation = Application.StartupPath + "/pictures/" + Tex_commodity_pic.Text
End Sub
Private Sub retu_input_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
OleDb_retuinput_quest_retu.Fill(DataSet_retuinput_quest_retu1)
Binding_retuinput_qeust_retu.AddNew()
End Sub
也就是在窗体load事件后再active事件中才进行赋值就一切正常了,原因可能是窗体中的数据库控件在窗体load事件中的执行顺序是排在最后的,或者是在load完成后才能对数据库控件执行操作。导致了这种情况的出现。
一句话就是在load事件中对数据库进行添加,更改等操作是不可行的。