- ベストアンサー
if文からcase文への置き換え
- ピクチャボックスをクリックしたら、チェックボックスがチェックされるメソッドを作りたいと思っています。
- 上記のif文をCase文に置き換えたのですが、エラーが出てしまいます。
- Case文の使い方が間違っているようです。どこが間違っているのか教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
SENDER は iS xxx としかかけません。 ですから 答えは ====================================================== Private Sub PictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click, PictureBox2.Click Select Case True Case sender Is Me.PictureBox1 If Me.CheckBox1.Checked = False Then Me.CheckBox1.Checked = True Else Me.CheckBox1.Checked = False End If Case sender Is Me.PictureBox2 If Me.CheckBox2.Checked = False Then Me.CheckBox2.Checked = True Else Me.CheckBox2.Checked = False End If End Select End Sub ====================================================== です。 もっとコーディング数を減らすには ========================================================= Private Sub PictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click, PictureBox2.Click Select Case True Case sender Is Me.PictureBox1 Me.CheckBox1.Checked = Not Me.CheckBox1.Checked Case sender Is Me.PictureBox2 Me.CheckBox2.Checked = Not Me.CheckBox2.Checked End Select End Sub ================================================================ でも同じ動作をします。 なお、VB.NET 2005 で動作テスト済みです。
お礼
ありがとうございます。 なるほど、isがなければいけなかったのですね。 不勉強でした。 大変参考になるご意見、感謝です。