Вы можете легко настроить все свои потенциальные комбинации в Словаре (Of CheckBox (), String), это также поможет управлять ими, поскольку похоже, что у вас есть дубликат (CheckBox 1, 6 и 7). Ключ будет представлять все элементы управления флажка, которые необходимо будет проверить, и значением будет ваше сообщение.
Затем в событии нажатия кнопки вы получите каждый элемент в Словаре, где все флажкиэлементы управления в ключе проверены. Затем вы упорядочите коллекцию по длине ключа и получите первое сообщение:
Private ReadOnly combinations As Dictionary(Of CheckBox(), String) = New Dictionary(Of CheckBox(), String)() From {
{ {CheckBox1, CheckBox6}, "On Campus Student Center" },
{ {CheckBox1, CheckBox7}, "On Campus Market Place" },
{ {CheckBox1, CheckBox8}, "Around Campus " },
{ {CheckBox2, CheckBox3, CheckBox9}, "2 Mile Restaurant" },
{ {CheckBox2, CheckBox3, CheckBox10}, "2 Mile FF" },
{ {CheckBox2, CheckBox4, CheckBox9}, "3 Mile Restaurant" },
{ {CheckBox2, CheckBox4, CheckBox10}, "3 Mile FF" },
{ {CheckBox2, CheckBox5, CheckBox9}, "4 Mile Restaurant" },
{ {CheckBox2, CheckBox5, CheckBox10}, "4 Mile FF" },
{ {CheckBox1, CheckBox6, CheckBox7}, "All On Campus " },
{ {CheckBox1, CheckBox6, CheckBox7}, "Student Center and Marketplace " },
{ {CheckBox1, CheckBox6, CheckBox8}, "Student Center and Around Campus" },
{ {CheckBox1, CheckBox8, CheckBox7}, "Marketplace and Around" }
}
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim matchedCombinations = combinations.Where(Function(kvp) kvp.Key.All(Function(cb) cb.Checked))
If (matchedCombinations.Any()) Then
Dim bestMatch = matchedCombinations.OrderByDescending(Function(kvp) kvp.Key.Length).First()
MessageBox.Show(bestMatch.Value, "Valid Combination", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("None of the checked CheckBoxes matched a specified combination", "Invalid Combo", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Sub