none
請問如何讓TextBox的值跟BindingNavigator而一起變動呢? RRS feed

  • 問題

  •  請問,目前在表單上數個TextBox,是由BindingNavigator連結資料來源所產生的,所以TextBox裡的值是依BindingNavigator所變動的,但目前我又另設了一個Button和TextBox是供user查詢用的,查詢後,DataGridView上出現查詢的那一筆記錄時,BindingNavigator會跟著而變動,相對的由來源連結出來的數個TextBox裡的資料也要跟著有所變動。

     

    請問,目前我已將BindingNavigator和DataGridViw一起連結在一起了,但請問要怎麼讓...那些數個TextBox的值,也跟著游標而顯示出現的值呢??

    有試過在TextBox_TextChanged裡寫

     TextBox1.Text =DataGridView1.CurrentRow.Cells(0).Value

    但還是不行,TextBox的值沒有跟著DataGridView的游標而變動??請問應該怎麼寫才對呢??

    2008年1月2日 上午 01:44

解答

  • If TextBox1.Text = "" Then
                MessageBox.Show("未輸入廠商簡稱")
            Else
                Dim dv As DataView = New DataView
                dv.Table = ds.Tables("A_Vendor")
                dv.RowFilter = String.Format("廠商簡稱 = '{0}'", TextBox1.Text)
                dv.Sort = "廠商簡稱 ASC"
                A_VendorDataGridView.DataSource = dv

                bs.DataSource = ds.Tables("A_Vendor")
                A_VendorDataGridView.DataSource = bs
                A_VendorBindingNavigator1.BindingSource = bs

     

    廠商編號TextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", ds, "A_Vendor.廠商簡稱", True))

     

    請自行修改

    2008年1月2日 上午 06:32

所有回覆

  • 程式碼區塊
    Sub dataGridView1_CurrentCellChanged(ByVal sender As Object, _
        ByVal e As EventArgs) Handles dataGridView1.CurrentCellChanged
    
         TextBox1.Text =DataGridView1.CurrentRow.Cells(0).Value
    
       
    End Sub 

     

    2008年1月2日 上午 02:09
  •  

    Hi  cmf

    目前我將那段程式寫在Button11_Click,而在寫這段之前,已經在給了以下的片段程式

    If TextBox1.Text = "" Then
                MessageBox.Show("未輸入廠商簡稱")
            Else
                Dim dv As DataView = New DataView
                dv.Table = ds.Tables("A_Vendor")
                dv.RowFilter = String.Format("廠商簡稱 = '{0}'", TextBox1.Text)
                dv.Sort = "廠商簡稱 ASC"
                A_VendorDataGridView.DataSource = dv

                bs.DataSource = ds.Tables("A_Vendor")
                A_VendorDataGridView.DataSource = bs
                A_VendorBindingNavigator1.BindingSource = bs

     

    再給..............廠商編號TextBox.Text = A_VendorDataGridView.CurrentRow.Cells(0).Value.ToString

    的時候,廠商編號TextBox是出現了這一筆資料,

    但是假如A_VendorBindingNavigator1上有四筆資料的話,

    廠商編號TextBox只會出現第一筆資料,剩下的三筆並不會因為按了BindingNavigator而出現,

    請問為什麼呢??

     

     

    PS:未寫在DataGridView1_CurrentCellChanged,是因為我寫了兩個Button控制了DataGridView。

          有辦法讓TextBox和BindingNavigator連結嗎??

    2008年1月2日 上午 02:59
  •  ' add a RowChanged event handler for the table.
         AddHandler  ds.Tables("A_Vendor").RowChanged, _
                New DataRowChangeEventHandler(AddressOf Row_Changed)

     

    .

    .

    .

    Private Sub Row_Changed(ByVal sender As Object, _
    ByVal e As DataRowChangeEventArgs)

     

      廠商編號TextBox.Text =e.Row(0).Value.ToString


        End Sub

     

    2008年1月2日 上午 03:52
  • 可以在 Data Source 的 Tab 把你需要的欄位...拉到  TextBox 上它就會自己做 binding


    2008年1月2日 上午 04:03
  • Hi cmf

    Private Sub Row_Changed(ByVal sender As Object, ByVal e As DataRowChangeEventArgs)
    這個辦法還是不行..............

     

    Hi Chhuang

    請問怎麼把Data Source 的Tab

    拉到TextBox上呢??????????

     

    目前我已經從DataSet拉取欄位出來了,但因為另有設Button去改變到DataGridView上的畫面資料,請問這樣怎麼再把

    DataSource拉到TextBox上呢?

    2008年1月2日 上午 06:16
  • If TextBox1.Text = "" Then
                MessageBox.Show("未輸入廠商簡稱")
            Else
                Dim dv As DataView = New DataView
                dv.Table = ds.Tables("A_Vendor")
                dv.RowFilter = String.Format("廠商簡稱 = '{0}'", TextBox1.Text)
                dv.Sort = "廠商簡稱 ASC"
                A_VendorDataGridView.DataSource = dv

                bs.DataSource = ds.Tables("A_Vendor")
                A_VendorDataGridView.DataSource = bs
                A_VendorBindingNavigator1.BindingSource = bs

     

    廠商編號TextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", ds, "A_Vendor.廠商簡稱", True))

     

    請自行修改

    2008年1月2日 上午 06:32
  • cmf

    產生錯誤訊息也~~~~~~~~~~

    廠商編號TextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", ds, "A_Vendor.廠商編號", True))

    這會造成集合中的兩個繫結與相同的屬性產生繫結。

     

    2008年1月2日 上午 06:53
  • 注意 :

     

    請自行修改    這5字

     

    2008年1月2日 上午 06:57