えーと、これもマトモにいじくった事がないです。
感想としては、デザイナで出来る事はデザイナでやった方がいいですね...。
ただ、今回はどこのプロパティやらなんやらをいじくったをメモっておきたいのもあったので、
あえてコードでやりました。
解らなかったのが、BindingSource の DataSource がからっぽの時、
BindingSource の Position は -1 になります。それで、
画面の操作上で、+ボタン(BindingNavigatorAddNewItem)をクリックしないと、
Row の追加が出来ないです。(Button1 の Click イベントで For Each で出力したりして確認)
これは、そういうものなんでしょうか。
それとも私がなにか間違ったことしてるんでしょか。
■参考文献
BindingNavigator コントロール (Windows フォーム)
BindingNavigator クラス
BindingSource クラス
BindingNavigator コントロールの使用方法について
■デザイナ画像
■実行画像
Public Class BindingNavigatorTest
Private m_dataSource As DataTable
Private Sub BindingNavigatorTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' 操作する DataTable の作成
Me.m_dataSource = New DataTable("Dog")
Me.m_dataSource.Columns.Add("DogName", GetType(String))
Me.m_dataSource.Columns.Add("DogKind", GetType(String))
' BindingSource の DataSource に設定する
Me.BindingSource1.DataSource = Me.m_dataSource
' Label の Text の設定
Me.Label1.Text = Me.m_dataSource.Columns(0).ColumnName
Me.Label2.Text = Me.m_dataSource.Columns(1).ColumnName
' Bind の設定
Me.TextBox1.DataBindings.Add( _
New System.Windows.Forms.Binding("Text", _
Me.BindingSource1, _
Me.m_dataSource.Columns(0).ColumnName, _
True))
Me.TextBox2.DataBindings.Add( _
New System.Windows.Forms.Binding("Text", _
Me.BindingSource1, _
Me.m_dataSource.Columns(1).ColumnName, _
True))
' BindingNavigator の BindingSource を設定
Me.BindingNavigator1.BindingSource = Me.BindingSource1
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' m_dataSource の中身を確認
For Each row As DataRow In Me.m_dataSource.Rows
Console.WriteLine(Me.m_dataSource.Columns(0).ColumnName & ":" & Convert.ToString(row(0)))
Console.WriteLine(Me.m_dataSource.Columns(1).ColumnName & ":" & Convert.ToString(row(1)))
Next
End Sub
End Class