C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[5]: WPF タブコントロールイベント
(過去ログ 83 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 6 記事 (1 - 6 表示)] <<
0
>>
■48986
/ inTopicNo.1)
WPF タブコントロールイベント
▼
■
□投稿者/ WPF初心者
(5回)-(2010/04/19(Mon) 20:42:59)
分類:[C#]
C#
VS2008
簡単そうな質問で大変申し訳ないのですが、
WPFのタブコントロールのタブ(Header)が変更された時のイベントがわかりません。
タブ変更イベントのようなものを探したのですが、
見当たらず、他に色々と試してみたのですが、
余計なイベントまで拾ってしまい、ハマってしまっています。
タブ変更イベントがあるのでしたら、
教えていただけないでしょうか?
よろしくお願い致します。
引用返信
編集キー/
編集
■48987
/ inTopicNo.2)
Re[1]: WPF タブコントロールイベント
▲
▼
■
□投稿者/ Hongliang
(606回)-(2010/04/19(Mon) 20:56:23)
SelectionChanged イベントのことでしょうか?
引用返信
編集キー/
編集
■48988
/ inTopicNo.3)
Re[2]: WPF タブコントロールイベント
▲
▼
■
□投稿者/ WPF初心者
(6回)-(2010/04/19(Mon) 21:09:18)
さっそくの返信ありがとうございます。
SelectionChangedだと
タブ変更以外のイベントを拾ってしまいます。
チェックかければSelectionChangedでいいとは思いますが、
単純に、タブを変更した時のみのイベントがあればいいなと思いまして…
引用返信
編集キー/
編集
■48996
/ inTopicNo.4)
Re[3]: WPF タブコントロールイベント
▲
▼
■
□投稿者/ かずき
(58回)-(2010/04/20(Tue) 10:10:32)
■
No48988
(WPF初心者 さん) に返信
> さっそくの返信ありがとうございます。
>
> SelectionChangedだと
> タブ変更以外のイベントを拾ってしまいます。
VC# 2010 Express Editionで試した範囲だとタブの選択を変更した
タイミングでしかSelectionChangedが発生しませんでした。
(全パターン試したわけじゃないのですがウィンドウのアクティブ化や
タブのアイテムの追加では発生しませんでした)
興味があるので、どういうときにSelectionChangedが発生するのかを
教えていただけないでしょうか
引用返信
編集キー/
編集
■49035
/ inTopicNo.5)
Re[4]: WPF タブコントロールイベント
▲
▼
■
□投稿者/ WPF初心者
(7回)-(2010/04/20(Tue) 19:48:50)
かずき さん
お返事が遅くなってしまい
大変申し訳ありません。
タブアイテムの中にコントロール(リスト/ボタン/テキストボックス)がある場合ですね。
その値を変更したらイベントを拾ってしまいますね。
制御が多少複雑なので、
その辺りのコントロールを拾ってしまうと、
他のタブを選択すると、2回イベントが走ってしまうというバグが起きています。
まだ対応していないのですが、
気づかないような細かいバグが嫌なので、
ドンピシャなイベントがあればそれを使用したいですね。
わざわざ試してくださいまして
ありがとうございます。
引用返信
編集キー/
編集
■49036
/ inTopicNo.6)
Re[5]: WPF タブコントロールイベント
▲
▼
■
□投稿者/ Hongliang
(608回)-(2010/04/20(Tue) 20:42:24)
あー、なるほど。子要素である ListBox の SelectionChanged がルーティング(バブル)されて親の SelectionChanged が発生しているわけですか。
// TabControl.ContentTemplate で定義したコントロールは全てのタブで共有され、値だけ書き換わります。で、値が変わると ListBox 等の SelectionChanged も発生することになります。
// ですのでタブの切り替え前後で ListBox の値が同じであれば、ListBox 分の SelectionChanged は発生しません。
タブの切り替えは SelectionChanged です。これは間違いありません。これが「ドンピシャなイベント」なんです。
子要素のルーティングイベントかどうかは、イベントの引数 e の OriginalSource が、目的の TabControl と等しいかどうかで判断するようにして下さい。
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-