2016-01-06 2 views
2

У меня есть два checkboxes для два groupboxes, чтобы включить видимость или невидимость каждого из них в то время, но как-то один работает (chboNew) другой (chboIssue) нет! вот код, который я написал для него, любая помощь будет оценена:Checkbox это не работает в VB.Net форме

Private Sub chboIssue_CheckStateChanged(sender As Object, e As EventArgs) Handles chboIssue.CheckStateChanged 
    If chboIssue.Checked = True Then 
     gbIssueSearch.Visible = True 
     gbNewSearch.Visible = False 
     chboNew.Checked = False 
    ElseIf chboIssue.Checked = False Then 
     gbIssueSearch.Visible = False 
    End If 
End Sub 

Private Sub chboNew_CheckStateChanged(sender As Object, e As EventArgs) Handles chboNew.CheckStateChanged 
    If chboNew.Checked = True Then 
     gbNewSearch.Visible = True 
     gbIssueSearch.Visible = False 
     chboIssue.Checked = False 
    ElseIf chboIssue.Checked = False Then 
     gbNewSearch.Visible = False 
    End If 
End Sub 
+0

Как это «не работает»? – Dai

+0

Кроме того, избегайте венгерской нотации (где имя переменной имеет префикс с ее сокращением), рассмотрите 'issueCheckbox' или' issueIsSelected' вместо 'chboIssue'). – Dai

+0

@Dai при проверке 'chboIssue' он не отображает групповой ящик' gbIssueSearch' для меня, и тот же, когда я его проверяю, он ничего не делает, Weird - это то, что когда 'gbNewSearch' groupbbox видна, и я отказываюсь от проверки' chboIssue' checkbox скрывает групповой пакет 'gbNewSearch', в то время как он должен скрывать групповой пакет' gbIssueSearch'! – Hazmat

ответ

3

Если пользователь должен выбрать между новой проблемой и вопросом поиска, по одному за раз. Затем вы должны использовать переключатели, а не флажок.

Флажок дает представление о том, что пользователь может одновременно выбрать оба флажка. Что в вашем случае не так.

+0

спасибо, что это было очень легко для меня, и я думаю, это будет очень легко для пользователя, а также использовать радиокнопки, и теперь мой код отлично работает :) – Hazmat

1

Изменение имени флажков не собирается, чтобы решить вашу проблему. Я заметил, что для вашего обработчика событий chboNew.CheckStateChanged в вашем предложении elseif вы проверяете, проверено ли chboIssue, а в вашем другом обработчике для chboIssue оба предложения if/else смотрят на chboIssue. Я думаю, что это может быть частью вашей проблемы. Кроме того, если только один из этих полей должен быть проверен одновременно, вы можете захотеть добавить логику, чтобы автоматически отключать другую, когда она проверяется. Например, в вашем обработчике chboNew: «Если chboNew.Checked = True Then chboIssue = False» и обратный в обработчике chboIssue. Надеюсь это поможет.

+0

спасибо Я исправил первую часть, которую вы упомянули, и вторая часть, о которой вы упомянули, уже существует, я думаю, быть какой-то другой проблемой, потому что я удалил код из обоих обработчиков, но все же, когда я загружаю свою форму, он не показывает групповой ящик! – Hazmat

+0

Вам нужно быть более конкретным. Какой именно код вы удалили? О каком групповом поле вы говорите? Какой флажок установлен? – pabrams

Смежные вопросы