
2つのチェックボックスがあり両方ともはずせて片方だけにチェックがつく2つの
チェックボックスが作りたいです
自分なりに作成してみました。このソースで不具合等ありませんでしょうか
Private Sub ckb1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ckb1.CheckedChanged
If ckb1.Checked = True Then
ckb2.Checked = False
End If
End Sub
Private Sub ckb2_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ckb2.CheckedChanged
If ckb2.Checked = True Then
ckb1.Checked = False
End If
End Sub
新人プログラマーなので自信がありません
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
すいません
追加です。
他の方法を記載するのを忘れました。
Public Class Form1
Private Sub CheckBox1_Click(sender As System.Object, e As System.EventArgs) Handles CheckBox1.Click
Dim f2 As New Form2
If CheckBox1.Checked = True Then
CheckBox2.Checked = False
f2.Show()
End If
End Sub
Private Sub CheckBox2_Click(sender As System.Object, e As System.EventArgs) Handles CheckBox2.Click
Dim f2 As New Form2
If CheckBox2.Checked = True Then
CheckBox1.Checked = False
f2.Show()
End If
End Sub
End Class
上記の方法では、チェックボックスに何回チェックを入れても、チェックした方のイベントハンドラしか発生しませんので、Form2は、チェック1回につき1個だけ表示されます。
但しこのコードが正しいとは言えません。
tkwavekさんが書いたコードを大切にしましょう。
No.1
- 回答日時:
こんにちは
>自分なりに作成してみました。
良く出来ていますね。(拍手
>このソースで不具合等ありませんでしょうか
このコード自体は問題ありませんが、このコードをどのように使うかによって、エラーになることもあります。
バグのないプログラムはありませんから。
例です。
各チェックボックスにチェックをいれるとForm2が表示されるサンプルです。
2回目にチェックボックスにチェックをいれるとCheckedChangedが働いて、どちらのチェックボックスにチェックしても、ckb1_CheckedChangedとckb2_CheckedChangedの両者のイベントが発生します。
下記のサンプルでは、1度目にチェックボックスにチェックをいれて、2回目にチェックボックスに再度他のチェックボックスにチェックをいれるとckb1_CheckedChangedとckb2_CheckedChangedの両者のイベントが発生してForm2が2個表示されます。
Public Class Form1
Private Sub ckb1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ckb1.CheckedChanged
Dim f2 As New Form2
f2.Show()
If ckb1.Checked = True Then
ckb2.Checked = False
End If
End Sub
Private Sub ckb2_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ckb2.CheckedChanged
Dim f2 As New Form2
f2.Show()
If ckb2.Checked = True Then
ckb1.Checked = False
End If
End Sub
End Class
2個表示しないためには、下記のようにします。
Public Class Form1
Dim f2 As New Form2
Private Sub ckb1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ckb1.CheckedChanged
f2.Show()
If ckb1.Checked = True Then
ckb2.Checked = False
End If
End Sub
Private Sub ckb2_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ckb2.CheckedChanged
f2.Show()
If ckb2.Checked = True Then
ckb1.Checked = False
End If
End Sub
End Class
上記のサンプルでは、両方ともClass Form2のFormClosingイベントをキャンセルしています。
下記参照
Public Class Form2
Private Sub Form2_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
e.Cancel = True
Me.Hide()
End Sub
End Class
>2つのチェックボックスがあり両方ともはずせて片方だけにチェックがつく2つのチェックボックスが作りたいです
いろいろな方法がありますが、tkwavekさんが頑張って書かれたコードですので、このコードをそのまま使う方法を考えればいいと思います。
あとはどのようにバグが出ないように使うかだと思います。(それでも、バグのないプログラムはありません)
頑張ってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) EXCELのセル相互同期用のVBAでの不具合 3 2022/08/10 11:44
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
access2021 VBA メソッドまたは...
-
JANコードとPOSコードは同じ?
-
access2003 クエリSQL文に...
-
JIPS-Eコードのコード表について
-
JavaScriptの定数名が取り消し...
-
サンプルコードの丸暗記学習に...
-
1日に1人がこなせるプログラム...
-
Excelシート上で右クリックがで...
-
【VB6】実行ファイルとした後、...
-
Objective-Cの繰返しアニメーシ...
-
VBAでファイルオープン後にコー...
-
COBOLの文法
-
こんばんは。COBOLを初めて学ん...
-
Exel VBA 別ブックから該当デ...
-
Javaの改行について
-
エクセルVBA ユーザーフォーム...
-
エクセルに見えない文字(JISX0...
-
文字列を検索しその列をコピー...
-
ASP.NETのSiteMapPathについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
JavaScriptの定数名が取り消し...
-
access2021 VBA メソッドまたは...
-
JANコードとPOSコードは同じ?
-
PreviewKeyDownイベントが2回...
-
エクセルに見えない文字(JISX0...
-
オートフィルタで抽出結果に 罫...
-
Excelシート上で右クリックがで...
-
Exel VBA 別ブックから該当デ...
-
access2003 クエリSQL文に...
-
変数名「cur」について
-
Nullの使い方が不正です。
-
【VB6】実行ファイルとした後、...
-
VBAでファイルオープン後にコー...
-
COBOLの文法
-
Accessでの抽出で完全一致。
-
AccessでReplace関数を使うときに…
-
Access DCountでの連番について
-
sinカーブの表示のさせ方
おすすめ情報