У меня есть назначение, в котором пользователь вводит числа в список. Когда пользователь будет вводить цифры, он вычислит среднее и стандартное отклонения (наш профессор не хочет, чтобы мы использовали встроенные функции стандартного отклонения). Программа будет иметь контекстное меню, и это рекомендации по созданию меню: Вы должны создать подпрограмму, называемую SetMenu. Он используется для включения и отключения контекстного меню на основе содержимого списка. Когда список пуст, Clear отключен. Когда в списке есть хотя бы одно число, Clear включен. Когда ничего не выбрано, Удалить элемент отключен. Когда что-то выбрано, элемент Удалить включен. Вот где мне нужна помощь, создавая эту подпрограмму.ListBoxes в Visual Basic
Вот мой код:
Option Strict On
Public Class Form1
Private Sub AddBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddBtn.Click
ListBox.Items.Add(InputBox.Text)
InputBox.Text = ""
End Sub
Private Sub ComputeBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComputeBtn.Click
Dim sum, x, number, numberSum, subtractedNum As Integer
Dim average, insideRoot, squaredRoot As Double
For x = 0 To ListBox.Items.Count - 1
ListBox.SelectedIndex = x
number = Integer.Parse(ListBox.SelectedItem.ToString)
sum = sum + number
average = sum/ListBox.Items.Count
Next
AverageLbl.Text = average.ToString
For x = 0 To ListBox.Items.Count - 1
ListBox.SelectedIndex = x
number = Integer.Parse(ListBox.SelectedItem.ToString)
subtractedNum = CInt((number - average)^2)
numberSum = numberSum + subtractedNum
insideRoot = (numberSum/(ListBox.Items.Count - 1))
squaredRoot = insideRoot^(1/2)
Next
DeviationLbl.Text = squaredRoot.ToString("N2")
End Sub
Private Sub ClearMenu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearMenu.Click
ClearMenu.Enabled = False
SetMenu()
ListBox.Items.Clear()
End Sub
Private Sub DeleteMenu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DeleteMenu.Click
ListBox.Items.Remove(ListBox.SelectedItem)
End Sub
Private Sub InputBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InputBox.TextChanged
If IsNumeric(InputBox.Text) And InputBox.Text <> "" Then
AddBtn.Enabled = True
Else
AddBtn.Enabled = False
End If
End Sub
Private Sub SetMenu()
'Need help here
End Sub
End Class
Мне нужна помощь в создании подпрограммы с именем SetMenu. Мне нужно включить элемент ClearMenu, если в списке есть хотя бы один элемент. И мне нужно включить элемент DeleteMenu, если в списке есть что-то, что было выбрано. – Jay
Похоже, вам нужно проверить ListBox.Items.Count. Если это 0, отключите кнопку «Очистить». Если оно> 0, включите кнопку «Очистить». Затем проверьте ListBox.SelectedIndex. Если это -1, отключите Delete. Если это> = 0, включите Delete. – Capellan
Каковы условия, которые мне нужно внести в оператор If? .. Я попытался сделать, если ListBox.Items.Count> 0, тогда ClearMenu.Enabled = True, и это заявление не сработало для меня, и поэтому я не знаю каково было мое состояние. – Jay