質問編集履歴

2

回答者の方の「意味不明」が自分なりに理解出来ました

2022/12/28 08:07

投稿

AKITERU
AKITERU

スコア1

test CHANGED
File without changes
test CHANGED
@@ -63,4 +63,19 @@
63
63
  ________________________
64
64
  不明、不足点あればご指摘ください。理解できる範囲で追加します。よろしくお願いします。
65
65
 
66
+ ################
67
+ ####修正編集(2)
68
+ 説明不足相済みません。フォローしていただいてありがとうございます。
66
69
 
70
+ (1)回答者の「意味不明」が判った様な気がします。ありがとうございました
71
+ (2)やりたかったのは下記の様なことでした
72
+ テーブルの項目には「必須入力」、「重複不可」等の条件が付いています。
73
+ この入力中の値をデータベース書き込み前にDataGridViewのCellValidatingで捕捉し、不適の場合作業中のセルにフォーカスを戻そうと考えました。
74
+ 自分の書ているコードではグリッド内の行移動をしようとした場合はうまく動作したのですが、不正入力の時グリッド外のボタンをクリックすると下記のエラーメッセージが表示されます。
75
+ 「DataGridviewで次の例外が発生しました。
76
+ SystemDataNotNullAllowedException列'KuwakeName'にnullsを使用することはできません」
77
+ これを防ぐためにグリッド外でクリックされたボタン類等が入手できれば対処かのかとおもいました。
78
+ (3)ご指摘から考えたこと
79
+ 不正入力状態でボタンクリックすると例外が発生するのでこの例外を捕捉して対処すれば可能になるのではないか?
80
+ このようなことから回答者の方は「意味不明」を連発されたのではないか?
81
+ 当面(2)のような考えでトライしてみます。ご指導ありがとうございました

1

回答者御指摘の不足点を捕捉しました

2022/12/27 09:26

投稿

AKITERU
AKITERU

スコア1

test CHANGED
File without changes
test CHANGED
@@ -31,6 +31,36 @@
31
31
  MessageBox.Show("現在アクティブなコントロールはありません。");
32
32
  }
33
33
  }
34
+
34
35
  ```
36
+ ####修正編集
37
+ 回答者の皆さんへご指摘の点をお知らせるるのが遅れていることお詫びします。
38
+ どのページで指摘された点を投稿するのか方法が判らず、差し当たって今回の方法でお願しました。
39
+
40
+ (1)「何を何で作っているかを質問欄を編集して追記してください。」
41
+ 環境はWindows 11 の Visual Studio 2022 で Windows Forms アプリをターゲットフレームワーク .NET Framework 4.8 です。
42
+
43
+ (2)テーブル及びlDataGridView
44
+ MS SQL ServerにCsPostDb.mdfを作成しここにCsKuwakeTb名のテーブルを作成しました。
45
+ Visual Studio 2022でCsPostDbDataSet名のデータセットを作成しこの中にCsKuwakeTbl名のDataTableが有ります。
46
+ 尚CsKuwakeTbの定義は下の通りです。この名称の為投稿が固有名詞になっています。
47
+ CREATE TABLE [dbo].[CsKuwakeTbl] (
48
+ [KuwakeId] INT IDENTITY (1, 1) NOT NULL,
49
+ [KuwakeName] NVARCHAR (30) NOT NULL,
50
+ [HyoujiNo] INT NOT NULL,
51
+ CONSTRAINT [PK_CsKuwakeTbl] PRIMARY KEY CLUSTERED ([KuwakeId] ASC),
52
+ UNIQUE NONCLUSTERED ([KuwakeName] ASC)
53
+ );
54
+
55
+ (3)lDataGridViewの作成
56
+ Visual Studio 2022のデータソースウィンドウ内のCsKuwakeTblをフォームにドラッグ&ペーストしcsKuwakeTblDataGridViewを作成しました。Visual Studio 2022ではこの作業により自動的にcsKuwakeTblBindingNavigatorが作成されました。
57
+
58
+ (4)ボタン操作でやりたいこと
59
+ csKuwakeTblBindingNavigator内に新規作成したボタンはデータベースへの書き込み用としたい。
60
+ 一方Form内のbutton1はアプリの終了ボタンとしたい。
61
+ グリッド内で既存データの編集又は削除、新規追加の作業をした場合csKuwakeTblBindingNavigator内のボタンをクリックしデータベースへの書き込み後でないとForm内のbutton1をクリックしてもグリッド内の現在の作業セルにフォーカスを戻したい。
62
+ 又BindingNavigatorがクリックされたことを認識し、そのに続いてBindingNavigator内の構成要素のどれがクリックされたかを知る方法などは無いのでしょうか?
63
+ ________________________
64
+ 不明、不足点あればご指摘ください。理解できる範囲で追加します。よろしくお願いします。
35
65
 
36
66