- PR -

クリックされたボタンの判断

投稿者投稿内容
テッテ
ベテラン
会議室デビュー日: 2008/03/16
投稿数: 91
投稿日時: 2008-06-25 11:44
引用:

Tagの値をデザイナ上から設定した場合、値はString型で入るみたいなので
キャストできないはずです。回避するにはTagに明示的にIntegerの値を入れてやる
必要があると思うんですが


今回はまさに、明示的に Integer の値を入れているケースだと思います。

引用:

私の場合は Tag プロパティは使いませんが、もし使うなら sender からのキャストは TryCast を使って System.Windows.Forms.Control にします。 また Tag プロパティは Null チェックをします。


確かに、そういう作りにしておいたほうが良さそうですね。
私は現実問題、なかなかそこまで気を回せないことが多いですが…
mitchin
会議室デビュー日: 2003/05/28
投稿数: 16
投稿日時: 2008-06-25 14:23
今回の場合、sender は Button であることが判っていて、Tag に Int32 が入っているという前提で書き込みました。
※Tag を参照するだけなら Control にキャストすればいいですが。
デザイナで設定する場合、割り当てることができるのはテキストだけなので数値も文字列になりますね。

Convert.ToInt32 を使えば仮に Tag が null参照(Nothing)であっても例外は発生しないです。
ただし、0 が返されるのでプログラムとしてはバグということになりますが・・・
はる
会議室デビュー日: 2008/06/21
投稿数: 13
投稿日時: 2008-06-25 21:38
テッテさん

String→Integerに直しましたら、正常に実行できました。
私の書き間違いでした。訂正ありがとうございます!

*****
mitchinさん、じゃんぬねっとさん、テッテさん、ueさん、kazukiさん、Liquid_Forceさん、貴重な時間を使って様々なご意見・ご返答をしていただきありがとうございました!

スキルアップ/キャリアアップ(JOB@IT)