Я делаю игру Seabattle, где корабли скрыты в панели с массивом меток. Этот массив меток должен иметь больше или меньше строк и столбцов в зависимости от выбранного уровня сложности.Связывание панели с формой
Итак, я создал новый класс «Gameboard», в котором определены панель и массив меток. Проблема заключается в том, что я не могу понять, как связать панель я делаю в этом классе в форме ..
namespace SO_S2_Programmeren_Groep08 {
class GameBoard{
Panel pnlSlagveld;
private Label[,] lblArray;
private int row;
private int column;
public Label[,] LblArray {
get {
return lblArray;
}
set {
lblArray = value;
}
}
public int Row {
get { return row; }
set { row = value; }
}
public int Column {
get { return column; }
set { column = value; }
}
public GameBoard(int row, int column) {
this.row = row;
this.column = column;
CreateLableArray(row, column);
}
public GameBoard() {
this.row = 7;
this.column = 9;
CreateLableArray(row, column);
}
private void CreateLableArray(int ingrow, int ingcolumn) {
pnlBattleField = new System.Windows.Forms.Panel();
lblArray = new Label[ingrow, ingcolumn];
int xpos = 0;
int ypos = 0;
for (int row = 0; row < ingrow; row++) {
for (int column = 0; column < ingcolumn; column++) {
lblArray[row, column] = new Label();
lblArray[row, column].Left = xpos;
lblArray[row, column].Top = ypos;
lblArray[row, column].Width = 50;
lblArray[row, column].Height = 50;
lblArray[row, column].Tag = (char)('A' + column) + (row + 1).ToString();
lblArray[row, column].Click += lblArray_Click;
lblArray[row, column].BackColor = Color.Aqua;
lblArray[row, column].BorderStyle = BorderStyle.FixedSingle;
pnlBattlefield.Controls.Add(lblArray[row, column]);
xpos += lblArray[row, column].Width;
}
ypos += lblArray[row, 0].Width;
xpos = 0;
}
}/*CreateLableArray*/
private void lblArray_Click(object sender, EventArgs e) {
MessageBox.Show("Clicked on Label " + ((Label)sender).Tag.ToString());
}
}
}
Если вы хотели бы видеть больше классов, пожалуйста, спрашивайте!
Спасибо!
Не могли бы вы показать мне строку кода, которая добавляет панель в форму? Я не привык работать с Windows Forms Application:/ – David
'Form someform = ...; someForm.Controls.Add (somePanel); 'Но вы, вероятно, не хотите этого делать, вы хотите немного перестроить свою программу. – Servy