|
分類:[.NET 全般]
2023/04/05(Wed) 13:55:07 編集(投稿者)
VB2008でDataRepeaterを使用しています。 DataRepeater上のテキストボックスで入力された値がある条件の場合、サブ画面をモーダル表示しています。
教えて頂きたい内容が2件あります。
1.サブ画面から戻った後、入力できなくなります。 マウスを使って他のコントロールにカーソルを移動してから、元の場所にカーソルを戻すと入力できる様になります。 AciveControlを取得してFocus設定しようとしましたが、AciveControl.NameがDataRepeaterとなっており、Focus設定の方法がわかりませんでした。 マウスで移動させた後に入力できる方法を教えてください。
2.TextBox1の入力、サブ画面表示、サブ画面に用意した取消ボタンをクリックと操作した場合、 TextBox1の内容を入力前の値(OldStr)に戻し、カーソルは移動したくないのですが、 TextBox1の入力後、別の行のTextBox1にマウスでカーソル移動した場合、カーソルが移動してしまいます。 e.Cancel = Trueにしてもダメでした。 カーソル位置を変更しない方法を教えてください。
Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating Dim w_TextBox As TextBox = CType(DataRepeater1.CurrentItem.Controls("TextBox1"), TextBox) (サブ画面を表示する条件チェック) If Flg_SubForm Then 'サブ画面を表示 Dim f As New Form2 f.Owner = Me If f.ShowDialog() <> System.Windows.Forms.DialogResult.OK Then '取消された場合、入力前に戻す DataRepeater1.CurrentItem.Controls("TextBox1").Text = OldStr End If End If End Sub
よろしくお願いします。
|