質問編集履歴

1

エラーメッセージが出ましたので関連する部分のコードを追加しています。

2020/07/14 05:09

投稿

Umeda2019
Umeda2019

スコア14

test CHANGED
File without changes
test CHANGED
@@ -28,6 +28,42 @@
28
28
 
29
29
 
30
30
 
31
+ Protected Overrides Sub OnKeyDown(e As KeyEventArgs)
32
+
33
+ MyBase.OnKeyDown(e)
34
+
35
+ If e.KeyCode = Keys.Enter Then
36
+
37
+ ProcessTabKey((Control.ModifierKeys And Keys.Shift) = 0) ←ここにエラーメッセージがでました。
38
+
39
+ e.Handled = True
40
+
41
+ e.SuppressKeyPress = True
42
+
43
+ End If
44
+
45
+ End Sub
46
+
47
+
48
+
49
+ Private Sub TextBoxes_Enter(ByVal sender As Object, e As EventArgs)
50
+
51
+ BeginInvoke(Sub(ctl As Object)
52
+
53
+ Dim box As TextBoxBase = TryCast(ctl, TextBoxBase)
54
+
55
+ If box IsNot Nothing Then
56
+
57
+ box.SelectAll()
58
+
59
+ End If
60
+
61
+ End Sub, sender)
62
+
63
+ End Sub
64
+
65
+
66
+
31
67
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
32
68
 
33
69
 
@@ -76,6 +112,152 @@
76
112
 
77
113
  ```
78
114
 
115
+ (追加ここから)
116
+
117
+ エラーメッセージが出ましたので上記のコードに追加をしています。
118
+
119
+ エラーメッセージ:「ハンドルされていない例外」
120
+
121
+ 「詳細のコピー」は以下の通りです。
122
+
123
+ System.InvalidCastException
124
+
125
+ HResult=0x80004002
126
+
127
+ Message=型 'System.EventArgs' のオブジェクトを型 'System.Windows.Forms.MaskInputRejectedEventArgs' にキャストできません。
128
+
129
+ Source=A01_form
130
+
131
+ スタック トレース:
132
+
133
+ 場所 A01_form.Form2._Lambda$__R101-1(Object a0, EventArgs a1)
134
+
135
+ 場所 System.Windows.Forms.Control.OnLeave(EventArgs e)
136
+
137
+ 場所 System.Windows.Forms.Control.NotifyLeave()
138
+
139
+ 場所 System.Windows.Forms.ContainerControl.UpdateFocusedControl()
140
+
141
+ 場所 System.Windows.Forms.ContainerControl.AssignActiveControlInternal(Control value)
142
+
143
+ 場所 System.Windows.Forms.ContainerControl.ActivateControlInternal(Control control, Boolean originator)
144
+
145
+ 場所 System.Windows.Forms.ContainerControl.SetActiveControlInternal(Control value)
146
+
147
+ 場所 System.Windows.Forms.ContainerControl.set_ActiveControl(Control value)
148
+
149
+ 場所 System.Windows.Forms.Control.Select(Boolean directed, Boolean forward)
150
+
151
+ 場所 System.Windows.Forms.Form.ProcessTabKey(Boolean forward)
152
+
153
+ 場所 A01_form.Form2.OnKeyDown(KeyEventArgs e) (D:\FORM01\FORM\A01_form\Form2.vb):行 25
154
+
155
+ 場所 System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m)
156
+
157
+ 場所 System.Windows.Forms.Form.ProcessKeyPreview(Message& m)
158
+
159
+ 場所 System.Windows.Forms.Control.ProcessKeyMessage(Message& m)
160
+
161
+ 場所 System.Windows.Forms.MaskedTextBox.ProcessKeyMessage(Message& m)
162
+
163
+ 場所 System.Windows.Forms.Control.WmKeyChar(Message& m)
164
+
165
+ 場所 System.Windows.Forms.Control.WndProc(Message& m)
166
+
167
+ 場所 System.Windows.Forms.TextBoxBase.WndProc(Message& m)
168
+
169
+ 場所 System.Windows.Forms.MaskedTextBox.WndProc(Message& m)
170
+
171
+ 場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
172
+
173
+ 場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
174
+
175
+ 場所 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
176
+
177
+ 場所 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
178
+
179
+ 場所 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
180
+
181
+ 場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
182
+
183
+ 場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
184
+
185
+ 場所 System.Windows.Forms.Application.RunDialog(Form form)
186
+
187
+ 場所 System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
188
+
189
+ 場所 System.Windows.Forms.Form.ShowDialog()
190
+
191
+ 場所 A01_form.Form1.伝票作成_Click(Object sender, EventArgs e) (D:\FORM01\FORM\A01_form\Form1.vb):行 168
192
+
193
+ (※筆者注)
194
+
195
+ 上の行の「行168」とはこのFormの呼出元のFormのことです。
196
+
197
+ Private Sub 伝票作成_Click(sender As Object, e As EventArgs) Handles 伝票作成.Click
198
+
199
+ Dim 伝票作成 As Form2 = New Form2(社員番号.Text, 社員名.Text) '値を渡す
200
+
201
+
202
+
203
+ 'モーダル開き、戻り値を受け取る
204
+
205
+ If 伝票作成.ShowDialog = DialogResult.OK Then ←ここが168行目です。
206
+
207
+ '値を受け取る
208
+
209
+ 社員番号.Text = 伝票作成.GetValue
210
+
211
+ 社員名.Text = 伝票作成.GetValue
212
+
213
+ End If
214
+
215
+ 伝票作成.Dispose()
216
+
217
+ End Sub
218
+
219
+ (※筆者注おわり)
220
+
221
+ 場所 System.Windows.Forms.Control.OnClick(EventArgs e)
222
+
223
+ 場所 System.Windows.Forms.Button.OnClick(EventArgs e)
224
+
225
+ 場所 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
226
+
227
+ 場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
228
+
229
+ 場所 System.Windows.Forms.Control.WndProc(Message& m)
230
+
231
+ 場所 System.Windows.Forms.ButtonBase.WndProc(Message& m)
232
+
233
+ 場所 System.Windows.Forms.Button.WndProc(Message& m)
234
+
235
+ 場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
236
+
237
+ 場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
238
+
239
+ 場所 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
240
+
241
+ 場所 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
242
+
243
+ 場所 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
244
+
245
+ 場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
246
+
247
+ 場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
248
+
249
+ 場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
250
+
251
+ 場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
252
+
253
+ 場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
254
+
255
+ 場所 A01_form.My.MyApplication.Main(String[] Args) ():行 81
256
+
257
+ (追加おわり)
258
+
259
+
260
+
79
261
  Button1の代わりに、「伝票日付」に下記のコードを記載してみたのですが、「表示項目」には何も表示されません。
80
262
 
81
263
  日付を変更すればそのタイミングで動きがあるかと思ったのですが。
@@ -130,4 +312,16 @@
130
312
 
131
313
  ```
132
314
 
315
+ (追加)
316
+
317
+ 上記のイベントハンドラは、フォームデザインで「伝票日付」をダブルクリックし、「MaskInputRejected」を「Leave」に置き換えています。
318
+
319
+ 挟んだ部分はボタンのものをそのまま記載しています。
320
+
321
+ こういう表現でわかりますでしょうか。
322
+
323
+ (追加おわり)
324
+
325
+
326
+
133
327
  どのようにすればよろしいでしょうか。