窗体load事件中不能赋值

来源:互联网 发布:adobe xd mac 破解版 编辑:程序博客网 时间:2024/05/29 18:48

程序如下:

   

 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事件中对数据库进行添加,更改等操作是不可行的。

原创粉丝点击