C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

DataRepeater上のTextBoxの制御について


(過去ログ 177 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■101704 / inTopicNo.1)  DataRepeater上のTextBoxの制御について
  
□投稿者/ おおはし (2回)-(2023/04/05(Wed) 13:50:40)

分類:[.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

よろしくお願いします。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -