У меня имеется двумерный массив, в котором хранятся различные значения. Мне необходимо реализовать вывод этих данных на форму, алгоритм должен быть примерно такой
Если значение массива равно нулю, то выводится NumericUpDown
, чтобы пользователь сам ввел данные, если значение массива больше нуля, выводится Label
со значением массива.
Сам массив
int[,] EasyArray = new int[,] {
{1,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,5,0,0,0},
{0,0,9,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,1}
};
Так генерируется Label
Label label = new Label();
label.Location = new Point(30,30);
label.Size = new Size(30,30);
label.Text = "tyt bydet vipyska iz massiva";
Controls.Add(label);
Так генерируется NumericUpDown
NumericUpDown numericUpDown = new NumericUpDown();
numericUpDown.Location = new Point(x,y);
numericUpDown.Size = new Size(30,30);
Controls.Add(numericUpDown);
Я пытался реализовать это с помощью if-else
, но что-то шло не так и если программа замечала хотя-бы одно верное значение, то она его и выводила, то есть проверка else
не происходила.
Подскажите алгоритм
или готовый код
если сможете, пожалуйста!
В итоге, после проб и ошибок, у меня получилось сделать все как я хотел. Происходит проверка по массиву, и матрица выводится ровно, то есть первая строка 9 элементов, потом переход и так 9 строк (до этого у меня выводилось все в ряд). Вот итоговый код:
void EasyToolStripMenuItemClick(object sender, EventArgs e)
{
int k=0;
int l=30;
int scoreX=0;
int scoreY=0;
int[,] EasyArray = new int[,] {
{1,0,6,0,0,0,0,0,6},
{5,0,0,8,0,0,0,0,8},
{0,0,0,0,4,0,0,0,7},
{0,0,0,0,0,0,0,0,6},
{0,0,0,0,0,0,6,0,5},
{0,0,0,0,2,0,0,0,4},
{0,0,0,0,0,0,0,0,3},
{0,0,0,0,0,0,0,0,2},
{0,0,0,0,0,0,0,0,1}
};
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
if(EasyArray[i,j] == 0) {
NumericUpDown numericUpDown = new NumericUpDown();
numericUpDown.Maximum = 9;
numericUpDown.Location = new Point(k,l);
numericUpDown.Size = new Size(30,30);
Controls.Add(numericUpDown);
scoreX++;
k=k+30;
} else {
Label label = new Label();
label.Location = new Point(k,l);
label.Size = new Size(30,30);
label.Text = Convert.ToString(EasyArray[i,j]);
Controls.Add(label);
scoreY++;
k=k+30;
}
}
l=l+30;
k=0;
}
P.S. Да, код ужасный, я постараюсь его почистить позже, я плохо разобрался с классами и прочим. Надеюсь что моя тема кому-нибудь поможет. Тому кто отвечал - спасибо!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При отображении данных в GridControl столкнулся с такой сложностью: Имеется свойство в в модели для получения изображения из byte[]:
Данный текст не отправляется, но если отправлять в ручную, то отправка идет успешно
Есть данные 8 Кб, нужно по протоколу UDP отправить их клиенту по 32 байтаКак правильно разбить данные? и как правильно их принять?
Пользователь загружает текст и изображение в методе Get, а в Post методе над этим изображением происходят некие действия и создается новое изображение,которое...