- PR -

BindingSourceコントロールを使ったフォームでのイベントについて

1
投稿者投稿内容
F.ISHII
会議室デビュー日: 2002/07/17
投稿数: 10
投稿日時: 2006-07-06 16:14
お世話になります。

VB2005 (Windows Form) SQLServer2000 です。

フォームに、
BindingSourceコントロール(BindingSource1)
BindingNavigatorコントロール(BindingNavigator1)
TextBox1 (主キーフィールド:ID とバインド)
が貼り付けてある単票フォームについて質問させて頂きます。

BindingNavigatorのレコード移動ボタンを押すとカレントレコードが移動し、TextBox1に
は、カレントレコードのIDが表示され、かつ編集可能な状態となる動作は期待通りです。
レコード追加ボタン(+マークのAddNewボタン)を押すと新規レコードが追加されるのも期
待通りなのですが、この時に何も入力しないで別のボタン(前の戻るボタンなど)を押すと、
「列'ID'にNullを使用することはできません。」
の例外となります。(開発環境で)
これは自明であり当然なのですが、この場合に何らかのイベントでこのエラーを拾い処理
を記述したいのですが、そのイベントがわかりません。
BindingSource1_DataError イベントかな?と思って試したのですが、イベントが発生
しませんでした。
よろしくお願い致します。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2006-09-22 23:40
諸農です。

引用:

この時に何も入力しないで別のボタン(前の戻るボタンなど)を押すと、
「列'ID'にNullを使用することはできません。」
の例外となります。(開発環境で)
これは自明であり当然なのですが、この場合に何らかのイベントでこのエラーを拾い処理
を記述したいのですが、そのイベントがわかりません。



どういった処理を考えているのか判らないので、適切でないかも知れませんが。
BindingNavigatorのクリックイベントで逃げることが出来ます。

コード:
    Private Sub BindingNavigator1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigator1.Click
        Dim r As DataRowView = CType(Table1BindingSource.Current, DataRowView)
        If r(0) Is DBNull.Value Or r(1) Is DBNull.Value Or r(2) Is DBNull.Value Or r(3) Is DBNull.Value Or r(4) Is DBNull.Value Then
            Table1BindingSource.CancelEdit()
            Table1BindingSource.MoveFirst()
        End If
    End Sub



後はご自分の実装したい処理で試行錯誤してみてください。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
1

スキルアップ/キャリアアップ(JOB@IT)