Рейтинг:
9
ATeDe
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' Button to validate Phone numbers typed into TextBoxes
Dim emptyTextBoxes =
From txt In Me.Controls.OfType(Of TextBox)()
Where txt.Text.Length = 0
Select txt.Name
' An array of type String() as equivalent of your Phones in TXT boxes
Dim txtBoxes =
From txt In Me.Controls.OfType(Of TextBox).Reverse.ToArray
Select txt.Text
Dim Result =
From txt In txtBoxes.Select(Function(Phone, Index) _
New With
{
.Phone = Phone,
.Index = Index,
.Length = Phone.Length
})
Order By txt.Index Ascending
Dim i, j As Integer
Dim WrongTxtBoxesA As New System.Text.StringBuilder
Dim WrongTxtBoxesB As New System.Text.StringBuilder
Dim Customers As New System.Text.StringBuilder
For Each box In Result
' Presume that correct phone number IsNumeric and 9 digits long, otherwise is WRONG
If Not (IsNumeric(Result(i).Phone.ToString)) Or Result(i).Phone.Length <> 9 Then
WrongTxtBoxesA.Append(String.Format("The Box {0} is WRONG {1} {2}", Result(i).Index, Result(i).Phone, vbCrLf))
WrongTxtBoxesB.Append(i.ToString & Space(1))
Else
Customers.Append("CustomerID:" & i.ToString & vbTab & "Phone:" & vbTab & Result(i).Phone & vbCrLf)
j += 1
End If
i += 1
Next
If i > 0 Then
MsgBox(String.Format("{0} {1} Please update following textboxes: {2}", WrongTxtBoxesA.ToString, vbCrLf, WrongTxtBoxesB.ToString))
End If
If j = 0 Then
MsgBox("NO customer has been successfully registered!!!")
Else
MsgBox(String.Format("{0} {1} {2} customer has been successfully registered ", Customers.ToString, vbCrLf, j))
Dim Filenum As Integer = FreeFile()
FileOpen(Filenum, "Z:\Desktop\Customers.txt", OpenMode.Append)
'Text file is opened'
PrintLine(Filenum, Customers.ToString)
'The data entered in the above text boxes is combined together separated with commas and stored into the open text file'
FileClose(Filenum)
'Once this is done the text file is closed and message below is displayed'
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' Button to populate 7 TxtBoxes and 7 labels
Dim Boxes As String() = {"1234567xx", "123456xxx", "", "123456789", "987654321", "0", "PhoneNumber"}
Dim txtboxes() As TextBox = Me.Controls.OfType(Of TextBox).Reverse.ToArray
Dim labels() As Label = Me.Controls.OfType(Of Label).Reverse.ToArray
Dim i As Integer
For Each box In txtboxes
box.Text = Boxes(i)
i += 1
Next
i = 0
For Each label In labels
label.Text = "Box" & String.Format(i)
i += 1
Next
End Sub
End Class
Maciej Los
Почему вы опубликовали еще один ответ?
ATeDe
Эй, Мацей, вместо того чтобы задавать смешные вопросы, помоги, дорогой человек, улучшить решение ...Разве вы не видите, что это далеко не идеально?
Модуль Module1
'эмулировать массив текстовых полей/ меток, как в версии VB6
Общественные txtBox() как TextBox = {форма form1.Поле Textbox1 На Форме Form1.Поле Textbox2, Форму Form1.Textbox3 И Форма Form1.TextBox4, Форму Form1.TextBox5, Форму Form1.TextBox6, Форму Form1.TextBox7}
Общественности, что mylabel() как Label = {форма form1.Метка1, Форму Form1.Метка2, Форму Form1.Метка3, Форму Form1.Label4, Форму Form1.Label5, Форму Form1.Label6, Форму Form1.Label7}
Телефоны общего пользования в виде строки() = {"1234567xx", "123456xxx", "", "123456789", "987654321", "0", "номер телефона"}
Конечный Модуль
Затем....
Частная суб методе form1_load(отправителя как объект, а равно EventArgs) обрабатывает ключевое слово mybase.Загрузить
Dim i как целое число
Для каждого lbl в myLabel
майлабель(i).Text = "клиент" & строка.Формат(i + 1)
i += 1
Следующий
Конец Подводной Лодки
Рейтинг:
19
ATeDe
Привет
j snooze
Я думаю, это то, что вы могли бы искать? Я не очень хорошо знаком с формами и всем этим джазом. VB.NET кроме того, завтра у нас здесь, в Ирландии, празднование Святого Патрика, поэтому я быстро написал этот фрагмент кода. массив строк txtBoxes имитирует содержимое ваших реальных текстовых полей. Это работает, но это только прототип, поэтому вы должны изменить и адаптировать свое приложение. Если у вас есть еще вопросы, не стесняйтесь, просто спросите... Да, также потребуется дополнительная проверка правильности телефонного номера (IsNumeric и так далее) удачи.
Атеде Sub validateTxtBoxes()
' An array of type String() as equivalent of your numbers in TXT boxes
Dim txtBoxes As String() = {"1234567", "123456", "", "123456789", "987654321", "0", "whatever"}
Dim Result =
(
From Tel In txtBoxes.Select(Function(Number, Index) _
New With
{
.Number = Number,
.Index = Index,
.Length = Number.Length
}
)
Order By Tel.Index Ascending
)
Dim i, j As Integer
Dim WrongTxtBoxes As New System.Text.StringBuilder
Dim Customers As New System.Text.StringBuilder
For Each box In Result
' Presume that correct phone number is 9 digits long, all the rest is WRONG
If Result(i).Number.Length <> 9 Then
Console.WriteLine("The Box {0} is WRONG {1}",
Result(i).Index,
Result(i).Number)
WrongTxtBoxes.Append(i.ToString & Space(1))
Else
Customers.Append("Customer:" & i.ToString & vbTab & "Number:" & vbTab & Result(i).Number & vbCrLf)
j += 1
End If
i += 1
Next
If i > 0 Then
'this piece of code looks for all text boxes in the form,
'If any Then Of them are blank their name would be included
'In the messagebox which reminds the user To fill them In
MsgBox(String.Format("Please fill following textboxes: {0}", WrongTxtBoxes.ToString))
End If
If j = 0 Then
MsgBox("NO customer has been successfully registered!!!")
Else
MsgBox(j & " customer has been successfully registered")
Dim Filenum As Integer = FreeFile()
FileOpen(Filenum, "Z:\Desktop\Customers.txt", OpenMode.Append)
'Text file is opened'
PrintLine(Filenum, Customers.ToString)
'The data entered in the above text boxes is combined together separated with commas and stored into the open text file'
FileClose(Filenum)
'Once this is done the text file is closed and message below is displayed'
End If
End Sub