Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 12
1

Обработчик програмного клика

10.12.2017, 12:28. Показов 510. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.Прошу помочь мне с написанием игры крестики-нолики. Код предоставляется
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public void Form2_Click(object sender, EventArgs e)
        {
            b = (Button)sender;
            int i = int.Parse(new string(b.Name[0], 1));
            int j = int.Parse(new string(b.Name[1], 1));
            if (mtx[i, j] == 0 | mtx[i, j] != 0)
                if (player == true)
                {
                    b.Image = AK;
                    player = false;
                    mtx[i, j] = 1;
                    b.Enabled = false;
                }
                else
                {
                    Game();
                    b.Location = new Point(wini, winj);
                    Control cnt = this.GetChildAtPoint(new Point(b.Location.X, b.Location.Y)); //Получить контрол на координатах
                    player = true;
                    /*MessageBox.Show("По координатам " + b.Location.X + "," + b.Location.Y + " находится " + cnt.Name + "\r\nСейчас мы на него программно нажмем");*/ //Программно кликнуть button
                    (Controls[cnt.Name] as Button).PerformClick();                                                                                                                                  //btn[i, j].BackColor = Color.Red;
                    b.Image = Snake;
                }
        }
По этому алгоритму отображает кликанье кнопки програмно, но не изменяет картинку. Кроме того, для програмного клика необходимо делать обычный клик, после первого прописанного клика. Как я могу прописать обработчик програмного клика?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2017, 12:28
Ответы с готовыми решениями:

Обработчик клика Button к ListBox
Как на примере кода ниже в обработчике клика кнопки button_find_Click взять выделенную строку...

Как проверить, если ли у кнопки обработчик клика, и как его вызвать?
С добрым днём! Подскажите, пожалуйста, как, во-первых, определить назначен ли какой-нибудь...

Как проверить, если ли у кнопки обработчик клика, и как его вызвать?
С добрым днём! Подскажите, пожалуйста, как, во-первых, определить назначен ли какой-нибудь...

Не срабатывает обработчик клика.
Доброго времени суток! Смотрите. Есть такой код var params = {"playlist":, ...

1
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
11.12.2017, 04:39 2
Как-то так:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
        private Image img = Properties.Resources;
        private Image img2 = Properties.Resources;
        private int[,] mass = new int[3, 3];
        private bool haveWinner = false;
        //необходимо подписать на это событие каждую кнопку
        private void button_Click(object sender, EventArgs e)
        {
            Button b = (sender as Button);
            int i = int.Parse(b.Name[6].ToString());
            int j = int.Parse(b.Name[8].ToString());
            if (mass[i, j] == 0)
            {
                changeButton(i, j, true);
                if (!haveWinner)
                {
                    getPoint(ref i, ref j);
                    changeButton(i, j, false);
                }
            }
        }
 
        private void changeButton(int i,int j,bool player)
        {
            Button b = (this.Controls[string.Format("button{0}_{1}", i, j)] as Button);
            b.Image = (player ? img : img2);
            b.Update();
            mass[i, j] = (player ? 1 : 2);
            checkWinner(player);
        }
        private void getPoint(ref int i,ref int j)
        {
            Random rand = new Random();
            while (mass[i, j] != 0)
            {
                i = rand.Next(0, 3);
                j = rand.Next(0, 3);
            }
 
        }
        private void checkWinner(bool player)
        {
           int val = (player ? 1 : 2);
            bool[] done = new bool[9];
            for(int i=0;i<done.Length;i++) done[i]=true;
           for (int i = 0; i < 3; i++)
           {
               if (mass[i, i] != val) done[6] = false;
               if (mass[i, 2 - i] != val) done[7] = false;
               for (int j = 0; j < 3; j++)
               {
                   if (mass[i, j] != val)
                   {
                       done[i] = false;
                   }
                   if (mass[j, i] != val) done[i+3] = false;
                   if (mass[i, j] == 0) done[8] = false;
               }
           }
           for (int i = 0; i < done.Length; i++)
           {
               if (done[i] == true)
               {
                   haveWinner = true;
 
                   if (i == 8)
                   {
                       MessageBox.Show("Ничья!!!");
                       break;
                   }
 
                   if (player)
                   {
                       MessageBox.Show("вы выиграли!!!");
                       break;
                   }
                   else
                   {
                       MessageBox.Show("вы проиграли!!!");
                       break;
                   }
 
               }
           }
 
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            mass.Initialize();
        }
0
11.12.2017, 04:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2017, 04:39
Помогаю со студенческими работами здесь

Обработчик клика по кнопке!
Всем доброго времени суток!!! Помогите пожалуйста!!!!!!!! Существует отчет в Access, т.к. &quot;Поле...

Добавить обработчик клика кнопке
Нужна кнопка, которая при нажатие выполняет текстовое изменения поля. Я так понимаю динамической...

Обработчик клика на созданый элемент
Добавляю я новый div по средствам js, а именно .append Но обработка события на клик по нему не...

Как/где назначен обработчик клика?
Привет! Вот есть страничка...

Listview. удаление строки. обработчик двойного клика по строке.
Имеется ListView с несколькими строками (item). Так же имеется баттон. Требуется по нажатию на...

Не работает обработчик клика мышью по динамически создаваемым кнопкам.
Помогите пожалуйста разобраться: вывожу в цикле do {} while () вопросы из базы, каждому вопросу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru