Я недавно начал изучать VB.net и C #.
Во всяком случае, я создал приложение Windows Form на VB.net с клавиатурой.
Для смены клавиш между прописными и строчными буквами также имеется клавиша Shift, которая работает, циклически просматривая все элементы управления в форме и изменяя регистр текста элемента управления на основе tabindex.
Код VB.NET:
Private bShiftEngaged As Boolean
Private Sub btnShift_Click(sender As Object, e As EventArgs) Handles btnShift.Click
Dim ctrl As Control
If bShiftEngaged = False Then
For Each ctrl In Me.Controls
If ctrl.TabIndex >= 20 And ctrl.TabIndex <= 45 Then
ctrl.Text = LCase(ctrl.Text)
End If
Next ctrl
Else
For Each ctrl In Me.Controls
If ctrl.TabIndex >= 20 And ctrl.TabIndex <= 45 Then
ctrl.Text = UCase(ctrl.Text)
End If
Next ctrl
End If
End Sub
Я пытался повторить это в C #. Проблема в том, что все элементы управления меняются.
C # Код:
private void btnShift_Click(object sender, EventArgs e)
{
if (bShiftEngaged == false)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl.TabIndex >= 20 && ctrl.TabIndex <= 45) ;
{
ctrl.Text = ctrl.Text.ToLower();
}
}
}
else
{
foreach (Control ctrl in this.Controls)
{
if (ctrl.TabIndex >= 20 && ctrl.TabIndex <= 45) ;
{
ctrl.Text = ctrl.Text.ToUpper();
}
}
}
}
Буду признателен за помощь в изменении кода, поэтому будут затронуты только элементы управления с tabindex между 20
и 45
.