tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルsenderの値の取得方法
記事No7429
投稿日: 2008/05/01(Thu) 11:12
投稿者ウネ
VB2005を使用しています。
「Senderの値の取得方法」について教えてください。
タブを選択した時に、どのタブが選択されたかを知りたいのですが
TabControl1_selectedイベントですと、e.TabPageIndexで
何番目のタブが選択されたかわかりますが、この行為を
TabControl1_SelectedIndexChangedで行ないたいです。
ブレイクを貼ってsenderの中を見るとselectindexという項目を使えば
わかるような気がするのですが、senderの中身の取得方法がわかりません。
初歩的な質問で申し訳ないのですが、お願いします。

[ツリー表示へ]
タイトルRe: senderの値の取得方法
記事No7430
投稿日: 2008/05/01(Thu) 11:30
投稿者YuO
> ブレイクを貼ってsenderの中を見るとselectindexという項目を使えば
> わかるような気がするのですが、senderの中身の取得方法がわかりません。

senderは常にSystem.Object型なので,対象の型にキャストする必要があります。
# Option Strict Offは最後の手段……。

というわけで,TryCast(sender, TabControl)のようにしてみてはどうでしょうか。


でも,元々の目的
> タブを選択した時に、どのタブが選択されたかを知りたいのですが
であれば,e.TabPageIndexとかe.TabPageでよい気がしますが。

[ツリー表示へ]
タイトルRe^2: senderの値の取得方法
記事No7432
投稿日: 2008/05/01(Thu) 11:55
投稿者YuO
> でも,元々の目的
> > タブを選択した時に、どのタブが選択されたかを知りたいのですが
> であれば,e.TabPageIndexとかe.TabPageでよい気がしますが。

これは勘違いなので,無視してください。
# SelectedIndexだとEventHandlerですね……。

[ツリー表示へ]
タイトルRe^2: senderの値の取得方法
記事No7433
投稿日: 2008/05/01(Thu) 13:57
投稿者魔界の仮面弁士
> senderは常にSystem.Object型なので,対象の型にキャストする必要があります。
> # Option Strict Offは最後の手段……。

VB2008 なら、sender As TabControl で宣言できたりします。
# 今回は 2005 なので、無意味な情報ですけれども。

[ツリー表示へ]
タイトルRe^3: senderの値の取得方法
記事No7434
投稿日: 2008/05/01(Thu) 15:10
投稿者YuO
> VB2008 なら、sender As TabControl で宣言できたりします。

反変性に違反するなぁ,と思ったら,Option Strict Offの場合のみですね。

ようやくVBでもデリゲートの共変・反変をサポートですか。
でも,イベントデリゲートで共変・反変を使う事は滅多になさそう……。
# オーバーライド時の共変・反変サポートはないのかな……。

[ツリー表示へ]
タイトルRe: senderの値の取得方法
記事No7431
投稿日: 2008/05/01(Thu) 11:33
投稿者Hongliang
・DirectCast / TryCast キーワードを使って TabControl にキャストする。
・sender を使わず TabControl1.SelectedIndex を参照する。
・普通に Selected イベントを使う。

[ツリー表示へ]
タイトルRe: senderの値の取得方法
記事No7495
投稿日: 2008/05/12(Mon) 08:06
投稿者ウネ
YuO様
魔界の仮面弁士様
Hongliang様
本当にありがとうございました。
その後無事に解決できました。
お礼が遅くなり、申し訳ないです。
本当にありがとうございました。

[ツリー表示へ]