Установите событие Click для панели, которая создается динамическиC#

Место общения программистов C#
Ответить
Anonymous
 Установите событие Click для панели, которая создается динамически

Сообщение Anonymous »

Я создал класс, создающий несколько карточек (панель), и хочу добавить событие «Клик» во время их создания. Я использую этот код ниже:

Код: Выделить всё

private void CoverBuilder(Panel mainPanel, Grid grid, int x, int y, int gameId, string
imageAddress, string exeAddress, string title)
{
card = new GameCard(grid.GameCardWidth, grid.GameCardHeight, grid.GameCardCoverWidth, grid.GameCardCoverHeight, Image.FromFile(imageAddress), title, gameId);

Panel gameCard = card.Make();
gameCard.Location = new Point(x, y);
gameCard.Cursor = Cursors.Hand;
gameCard.Click += GameCard_Click;
mainPanel.Controls.Add(gameCard);
}

private void GameCard_Click(object sender, EventArgs e)
{
Panel gameCard = (Panel)sender;
StartGame(int.Parse(gameCard.Name));
}

private void StartGame(int gameId)
{
DataTable table = gameDB.Find(gameId);
string exeFileAddress = table.Rows[0]["ExeAddress"].ToString();

// start exe process
var psi = new ProcessStartInfo(exeFileAddress)
{
UseShellExecute = true
};
Process.Start(psi);
}
Но когда я использую их в форме и нажимаю на них, они не работают.

Подробнее здесь: https://stackoverflow.com/questions/787 ... ly-created
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»