Я создал приложение winform, которое принимает значения из текстовых полей и передает их в разные текстовые поля. Но в моем случае я могу передать значения. Когда я удаляю несколько букв между ними, я не могу передать точно все числа в указанные текстовые поля.Как передать числа, связанные с каждой буквой, в разные текстовые поля из основного текстового поля
У меня есть 10 текстовых полей для получения значений. И у меня есть одно основное текстовое поле (т. Е.) Textbox11 для записи значений и передачи их в 10 текстовых полей.
Так что скажем, я печатаю N14 G73 X315.2 Y83.7 I40.0 J6.4 A0.0 H3 K75 T11 F5 M0 C0.0 в текстовом поле11. Я могу успешно передать значения из
N to textbox1 = 14
G to textbox2 =73
X to textbox3 = 315.2
Y to textbox4 = 83.7
I to textbox5 = 40.0
J to textbox6 = 6.4
H to textbox7 = 3
K to textbox8 = 75
F to textbox9 = 30
T to textbox10 = 11
Но когда я изменить формат N14 G73 X315.2 Y83.7 I40.0 A0.0 H3 K75 T11 F5 M0 C0.0 Так здесь, когда по сравнению с выше линии, мы можем видеть, J6.4 отсутствует в этом случае, мои ценности остались сдвинуты .. Ниже выходной я получаю ..
N to textbox1 = 14
G to textbox2 =73
X to textbox3 = 315.2
Y to textbox4 = 83.7
I to textbox5 = 40.0
J to textbox6 = 0.0
H to textbox7 = 0.0
K to textbox8 = 3
F to textbox9 = 75
T to textbox10 = 30
Как справиться с этой ситуацией .. Я хочу каждый номер каждого текстового поля независимо от длины строки.
Фрагмент кода:
private void textBox11_TextChanged(object sender, EventArgs e)
{
string originalText = textBox11.Text;
string[] splitString = originalText.Split(new Char[] { 'N', 'G', 'X', 'Y', 'I', 'J', 'A', 'H', 'K', 'F', 'T', 'M', 'C' });
foreach (String str in splitString)
{
if(str == null || str.Length == 0)
{
switch (str[0])
{
case 'N':
textBox1.Text = str.Substring(1);
break;
case 'G':
textBox2.Text = str.Substring(1);
break;
case 'X':
textBox3.Text = str.Substring(1);
break;
case 'Y':
textBox4.Text = str.Substring(1);
break;
case 'I':
textBox5.Text = str.Substring(1);
break;
case 'J':
textBox6.Text = str.Substring(1);
break;
case 'H':
textBox7.Text = str.Substring(1);
break;
case 'K':
textBox8.Text = str.Substring(1);
break;
case 'F':
textBox9.Text = str.Substring(1);
break;
case 'T':
textBox10.Text = str.Substring(1);
break;
}
}
}
}
Так что вы хотите предшествующий символ описывает, где это число идет? Итак, 'N14' должен помещать' 14' в 'textBox1' независимо от того, где он находится в строке? – Gutblender
@Gutblender. Если это так, то в примере есть несогласованность с буквой F. 'F5' переводит на' F = 30' –