.NET 2.x Разные функции для массива CheckBox-ов - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Приветствую. Решил спросить совета. Есть нужда: 10 чекбоксов. Нужно в зависимости от чека вызывать функции. Матрица возможности
  1. 1 1 1 2 1 3 1 n 2 1 2 2 2 n
Ну и дальше. Проблемы вроде нет большой, функция на проверки чеков для всех CB, и типа If sender("cb1").checked то. Одно но. функции, не одинаковые, т.е. написать готовый модуль и потом в зависимости от выбранного чекбокса передавать параметрами нет возможности (во всяком случаи я не вижу) т.к. и параметров в каждой фкнции не одинаковое кол-во, а может и совсем нет. В дргуих задачах, ну есть 5 чекбоксов, длинная проверка на состояние chekc каждого (благо не много) и функция с параметрами. Тут же одни вопросы пока. Кто как решил бы задачу, какие есть мысли, с применением чистого ООП

Решение задачи: «.NET 2.x Разные функции для массива CheckBox-ов»

textual
Листинг программы
  1. Public Class Form1
  2.     Private ch() As CheckBox
  3.     Private isLoad As Boolean = False
  4.     Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  5.         ch = {CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8}
  6.         isLoad = True
  7.     End Sub
  8.     Public Function chState(ByVal chk() As CheckBox) As String
  9.         Dim cc(chk.Length - 1) As Char
  10.         For Each ch As CheckBox In chk
  11.             If ch.Checked Then
  12.                 cc(CInt(ch.Name.Substring(8)) - 1) = "1"c
  13.             Else
  14.                 cc(CInt(ch.Name.Substring(8)) - 1) = "0"c
  15.             End If
  16.         Next
  17.         Return String.Join("", cc)
  18.     End Function
  19.     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  20.         Dim ss As String = "f" & chState(ch)
  21.         Try
  22.             CallByName(Me, ss, CallType.Method, Nothing)
  23.             'или
  24.             ' GetType(Form1).InvokeMember(ss, System.Reflection.BindingFlags.InvokeMethod, Nothing, Me, Nothing)
  25.         Catch ex As Exception
  26.         End Try
  27.     End Sub
  28.     Public Sub f01010000()
  29.         MsgBox("f01010000")
  30.     End Sub
  31.     Public Sub f11010000()
  32.         MsgBox("f11010000")
  33.     End Sub
  34.     Public Sub f01010100()
  35.         MsgBox("f01010100")
  36.     End Sub
  37. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы