Как напечатать элементы массива строк в метке? c# - PullRequest
0 голосов
/ 09 апреля 2020

Моя проблема - это распечатка элементов массива внутри метки в форме windows с c#, но я хотел использовать оператор if для печати определенных элементов, а не всех элементов, код имеет две формы:

форма 1:

public static String [] names = new String [3];
private void button (sender and whatever ...){

      if(label1.Text.Equals("meal1")){
         names[0] = "name1";
      }
      if(label1.Text.Equals("meal2")){
         names[1] = "name2";
      }
      if(label1.Text.Equals("meal3")){
         names[2] = "name3";
      }
      this.Hide();
      Form2 frm2 = new Form2();
      frm2.Show();
}

Я сделал это для отправки данных массива в следующую форму, элементы массива сохраняются в зависимости от выбора пользователя из меню

Форма 2:

private void Form2_Load(...){

    String [] names2 = {"name1" , "name2" , "name3"};

    for(int i = 0 ; i < Form1.names.Length ; i++){
        if(Form1.names[i].Equals(names2[i])){
             label1.Text = names2[i] + "\n";
        }
    }

}

Допустим, пользователь выбирает «еды1» и «еды3», теперь, когда форма 2 загружена, я должен видеть «еды1» и «еды3» на этикетке, но все, что я вижу, является последним выбор пользователя, я пытался String.join("\n",names2[i]);, но он печатал все элементы массива, которые я пытался labe1.Text += names2[i] + "\n";, он также печатал последний выбор для пользователя.

спасибо ...

1 Ответ

2 голосов
/ 09 апреля 2020

Да, у меня твоя проблема. каждый раз, когда вы запускаете свой код, вы получите фамилию, условие которой будет истинным. Вот решение вашей проблемы.

if(Form1.names[i].Equals(names2[i])){
         label1.Text = names2[i] + "\n";
    }

В этих строках вы просто назначаете имя для label1, но каждый раз, когда вы назначаете новое значение, старое значение заменяется. Вы должны изменить эту строку назначения как

if(Form1.names[i].Equals(names2[i])){
         label1.Text += names2[i] + "\n";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...