
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
C# コードビハインドについて
-
access2021 VBA メソッドまたは...
-
C言語について。
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
VLookup関数を使ってラベルに表...
-
WSH動作しない!!(WScript.Sle...
-
美しいソースとは?
-
オートフィルタで抽出結果に 罫...
-
エクセルVBA ユーザーフォーム...
-
Exel VBA 別ブックから該当デ...
-
コマンドボタンを押したときに...
-
オートフィルタの一括解除につ...
-
ActiveReportの改ページ不具合...
-
PictureBox内の画像をマウスド...
-
Accessの文字列部分一致を合計...
-
1、Rstudioで回帰直線を求める...
マンスリーランキングこのカテゴリの人気マンスリー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カーブの表示のさせ方
おすすめ情報