
No.4ベストアンサー
- 回答日時:
本当は、先頭に制御可能フラグ(Boolean)を持たせて、
・タブコントロール.Enter/Leave/Validating/Validating/SelectedIndexChanged
・タブページ.Enter/Leave/Validating
などのフォーカス系/入力チェック系イベントでのフラグの制御を行い、
・e.Cancel=制御フラグ
としたいです
が!
タブコントロール以外にフォーカスを持たせた後、カレントではないタブをクリックすると、
1.タブコントロール.SelectedIndexChanged
2.タブコントロール.Enter
という順序でイベントが発生するという大問題があります。(.NET2002でのことです。そちらの環境がわからないので、そちらで同じ動作を行うかがわかりません。)
これってバグなのかな?
これを回避する方法は知りませんが、直接イベントをフックさせたらできるかも?(保障なしです)
代案になりますが、タブ内のテキスト項目に正常な入力が行われていなければ絶対にフォーカスを移させないということと、ページ移動ボタンも、タブコントロール内部に設置することにより、対応可能です(苦しい代案です)
さらに画面終了ボタンも内部に設置し、画面が閉じようとしている時の状態も認識する必要があります。
http://dobon.net/vb/dotnet/form/unloadmode.html
完全な回避方法を見つけた人がいたら、教えて欲しいぐらいです。^^;
ありがとうございました。
>1.タブコントロール.SelectedIndexChanged
を使用して解決致しました。
今度も宜しくお願い致します。
No.3
- 回答日時:
>TabControl1_Validating(パラメータ[sender,e]) Handles TabControl1.SelectedIndexChanged
違います。
タブコントロールではありません。
タブコントロール内の、各タブページのValidatingです。
TabPage1_Validating(パラメータ[sender,e]) Handles TabPage1.Validating
TabPage2_Validating(パラメータ[sender,e]) Handles TabPage2.Validating
#1ではそれを組み合わせて(TabPage1_Validating + TabPage2_Validating)
TabPages_Validating(パラメータ[sender,e]) Handles TabPage1.Validating, TabPage2.Validating
としておりました。
#1であげた参考URL
http://msdn.microsoft.com/smartclient/community/ …
[How do I prevent the user from changing the selected tab page in a TabControl?]
とほとんど変わりませんが、一応サンプル
'イベント/フォーム/Load
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Show()
Call TabControl1_SelectedIndexChanged(TabControl1, New System.EventArgs())
End Sub
'イベント/タブコントロール/SelectedIndexChanged
Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
Me.TabControl1.TabPages(Me.TabControl1.SelectedIndex).Focus()
End Sub
'イベント/タブページ[TabPage1・TabPage2]/Validating
Private Sub TabPages_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TabPage1.Validating, TabPage2.Validating
e.Cancel = True
End Sub
参考URL:http://msdn.microsoft.com/smartclient/community/ …
ありがとうございました。成功いたしました。
ただ、もう1つお聞きしたいのですが、
これを解除するにはどうすれば良いのでしょうか ?
つまり、他のタグや全く外のTextBoxに移動したいのです。何度もすみません。宜しくお願い致します。
No.2
- 回答日時:
>TabControl1.SelectedIndex = 0
>他のタグは選択できない
なので
タブページのValidatingイベントで
e.Cancel = True
を指定するとできます。
この回答への補足
何度も、ありがとうございます。
Private Sub TabControl1_Validating(ByVal sender
As Object, ByVal e
As System.ComponentModel.CancelEventArgs)
Handles TabControl1.Validating
e.Cancel = True
End Sub
と、入れたのですが、他のタグも選択できてしまい
ます。宜しくお願い致します。
No.1
- 回答日時:
タブコントロールの中の全ての各タブページに対し
[タブページ.Validating]
をハンドリング
http://www.microsoft.com/japan/msdn/library/defa …
Private Sub TabPages_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TabPage1.Validating, TabPage2.Validating, TabPage3.Validating
e.Cancel = True
End Sub
http://msdn.microsoft.com/smartclient/community/ …
[How do I prevent the user from changing the selected tab page in a TabControl?]
http://homepage1.nifty.com/rucio/main/dotnet/sho …
この回答への補足
ご回答をありがとうございます。すみません、よく解りません。
こちらの説明不足かもしれません。具体的に説明しますと
[TabControl1]に、TabPage1/TabPage2 の2つのタグがあります。
ある条件で、TabControl1.SelectedIndex = 0 と、選択した状態にし、
他のタグは選択できない様にしたいのです。
宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- Gmail Gmailのメールの自動振り分け設定でむちゃくちゃになる 1 2022/04/19 19:30
- Visual Basic(VBA) VB.netのコンテナークラスとはなんですか 2 2023/07/22 03:54
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- WordPress(ワードプレス) ワードプレスで、投稿一覧ページにタグを表示する方法 投稿につけたタグを、記事一覧ページにもカテゴリと 1 2023/05/10 21:41
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- ビデオカード・サウンドカード PCから音が出なくなりました。原因が分かりません 7 2023/03/27 15:28
- HTML・CSS HPに文章で改行はすべてBRタグとかで改行しなきゃだめなのですか?改行が活きたまま書く方法ないの? 1 2022/12/03 21:00
- 誕生日・記念日・お祝い 服をプレゼントする時のタグについて。 14個ほど上のいとこがもうすぐ誕生日で今誕生日プレゼントで迷っ 5 2022/06/16 15:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コントロールの書式設定で、“コ...
-
エクセルのコントロールツール...
-
C#でパネルに子パネルを上から...
-
DateTimePickerでに年月までし...
-
フォームでPDFを表示させた...
-
コモンダイアログコントロール...
-
EXCELVBA リストボックスで選択...
-
ワードのドロップダウンリスト
-
アイテムを点滅させる
-
Accessのタブコントロールを2...
-
ActiveXコントロールを.NETにイ...
-
VScrollBarの点滅を何とかしたい。
-
SSTabのフォーカスの移動につい...
-
CEdit の内容が変わった時にメ...
-
TabControlが変る瞬間イベント
-
VisualStudio MFC変数が追加で...
-
エクセルで作った新しいウイン...
-
Minecraft 統合版(PC)の描画距...
-
グラフの交点の求め方(Excel)
-
「アイテムは収集されました」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コントロールの書式設定で、“コ...
-
エクセルのコントロールツール...
-
スピンボタンを右クリックして...
-
DateTimePickerでに年月までし...
-
ActiveXコントロールを.NETにイ...
-
フォームでPDFを表示させた...
-
コモンダイアログコントロール...
-
連続で印刷すると画像が更新さ...
-
VScrollBarの点滅を何とかしたい。
-
エクセル - リストボックスのマ...
-
CEdit の内容が変わった時にメ...
-
空のリストビューで1行おきに...
-
リストコントロール(MFC or API...
-
TabControlとToolBarの背景色変更
-
タブコントロール上のリストコ...
-
アイテムを点滅させる
-
EXCELVBA リストボックスで選択...
-
regsvr32でActiveX登録を行ったocx
-
VB6.0のデザイン時 コントロー...
-
Accessのタブコントロールを2...
おすすめ情報