主婦と.NETと犬のぶろぐ

奥様 と プログラム と お犬様 の 楽しい日常

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

BindingNavigator(System.Windows.Forms.BindingNavigator)と BindingSource(System.Windows.Forms.BindingSource)

えーと、これもマトモにいじくった事がないです。
感想としては、デザイナで出来る事はデザイナでやった方がいいですね...。
ただ、今回はどこのプロパティやらなんやらをいじくったをメモっておきたいのもあったので、
あえてコードでやりました。

解らなかったのが、BindingSource の DataSource がからっぽの時、
BindingSource の Position は -1 になります。それで、
画面の操作上で、+ボタン(BindingNavigatorAddNewItem)をクリックしないと、
Row の追加が出来ないです。(Button1 の Click イベントで For Each で出力したりして確認)

これは、そういうものなんでしょうか。
それとも私がなにか間違ったことしてるんでしょか。

■参考文献
BindingNavigator コントロール (Windows フォーム)
BindingNavigator クラス
BindingSource クラス
BindingNavigator コントロールの使用方法について

■デザイナ画像
BindingNavigator デザイナ画像

■実行画像
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

投稿日時 : 2006年12月7日 12:09

Feedback

# re: BindingNavigator(System.Windows.Forms.BindingNavigator)と BindingSource(System.Windows.Forms.BindingSource) 2006/12/07 12:58 はつね

BindingNavigatorクラスと併用した場合、DataGridViewではなくテキストボックスとかでやっていると[+]ボタンクリックしてから追加の操作性になります。

DataGridViewで最終行が新規追加用に空行が表示されるのは、DataGridViewの機能になります(Accessを意識?)

# re: BindingNavigator(System.Windows.Forms.BindingNavigator)と BindingSource(System.Windows.Forms.BindingSource) 2006/12/07 13:09 なおこ(・∀・)

>> はつねさん
> テキストボックスとかでやっていると[+]ボタンクリックしてから追加の操作性になります。
ほほぉ~!
ありがとうございます!!

# efoRaNeHiqBsyprsuj 2014/08/27 23:32 http://crorkz.com/

OHu5Cc Heya i'm for the primary time here. I found this board and I in finding It really helpful & it helped me out a lot. I'm hoping to present something again and aid others like you aided me.

タイトル  
名前  
Url
コメント