Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 10

If/else при нажатии на pictureBox

17.03.2016, 05:31. Показов 2593. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Опишу вкратце ситуацию:
Решил сделать крестики-нолики. Мой опыт работы с WF от силы час (в обучении использую консоль), но для крестиков-ноликов всё же нужна хоть какая-то графика. Создать 9 pictureBox не составило труда, а также чтобы при нажатии на них менялась картинка. Но вот дальше я зашёл в тупик. Я хочу сделать режим с компьютером. Для этого нужно сделать условия нажатий на pictureBox. Например при нажатии на pictureBox менять значение переменной такой-то с нуля на единицу, если там единица делать то-то. Так вот... А где main-то чтобы обращаться к переменным и программу писать? Пооткрывав каталоги я нашел Program.cs и решил что код основной нужно писать там, но как например тогда из него обратиться к Form.cs и взять оттуда значение переменных или то что там сработало нажатие? Или я не прав и код нужно писать именно в Form.cs?

Собственно код вот, но в нём только pictureBox.

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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {      
       public Form1()
        {
            InitializeComponent();
 
        }
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            pictureBox1.Image = global::WindowsFormsApplication1.Properties.Resources._2;                   
        }
 
        private void pictureBox2_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = global::WindowsFormsApplication1.Properties.Resources._2;
            
        }
 
        private void pictureBox5_Click(object sender, EventArgs e)
        {
            pictureBox5.Image = global::WindowsFormsApplication1.Properties.Resources._2;
        }
 
        private void pictureBox4_Click(object sender, EventArgs e)
        {
            pictureBox4.Image = global::WindowsFormsApplication1.Properties.Resources._2;
        }
 
        private void pictureBox10_Click(object sender, EventArgs e)
        {
            pictureBox10.Image = global::WindowsFormsApplication1.Properties.Resources._2;
        }
 
        private void pictureBox3_Click(object sender, EventArgs e)
        {
            pictureBox3.Image = global::WindowsFormsApplication1.Properties.Resources._2;
        }
 
        private void pictureBox6_Click(object sender, EventArgs e)
        {
            pictureBox6.Image = global::WindowsFormsApplication1.Properties.Resources._2;
        }
 
        private void pictureBox7_Click(object sender, EventArgs e)
        {
            pictureBox7.Image = global::WindowsFormsApplication1.Properties.Resources._2;
        }
 
        private void pictureBox8_Click(object sender, EventArgs e)
        {
            pictureBox8.Image = global::WindowsFormsApplication1.Properties.Resources._2;
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2016, 05:31
Ответы с готовыми решениями:

Перерисовать pictureBox при нажатии на linkLabel
Помогите пожалуйста!!! Вырисовку что я провела в pictureBox нужно вызвать при нажатии на элемент linkLabel. ошибку выдает на параметр...

При нажатии на picturebox выбирался radiobutton
Как сделать, чтобы при нажатии на picturebox выбирался radiobutton?

В pictureBox менять картинки при нажатии на кнопку
Здравствуйте подскажите пожалуйста как сделать с помощью кнопки чтобы менялось изображения в pictureBox С#

3
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
17.03.2016, 06:22
Лучший ответ Сообщение было отмечено Vasiliy551 как решение

Решение

Весь код что вы написали можно заменить на код ниже, и установить один и тот же обработчик pictureBox_Click на все PictureBox.
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
         // тут можно объявлять переменные...
         private bool someVar;
 
         public Form1()
        {
            InitializeComponent();
         }
 
        private void pictureBox_Click(object sender, EventArgs e)
        {
            (sender as PictureBox).Image = Properties.Resources._2;
 
            someVar = !someVar;
 
            if (someVar)
            {
                // что-то делаем...
            }
            else
            {
                // ...
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
    }
}
Program.cs вам не нужен.

Для простоты можете все писать прямо в коде формы, хотя так конечно лучше так не делать и выносить всю логику в отдельный класс.
1
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 10
17.03.2016, 06:35  [ТС]
Я понял, большое спасибо.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
17.03.2016, 06:53
Тут даже пример какой-то есть реализации игры. Можно в декомпиляторе код подсмотреть.

Добавлено через 6 минут
И еще пару тем про это:
Создание игры "Крестики-Нолики"
Создание игры крестики нолики
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.03.2016, 06:53
Помогаю со студенческими работами здесь

Пропадает рисунок на PictureBox при нажатии клавиши Alt
Рисую на PictureBox при помощи двойной буферизации. При нажатии клавиши Alt рисунок пропадает. Если не понятен процесс рисования - приведу...

В Picturebox при нажатии на кнопку должен появиться прямоугольник
Помогите! Написала код, но вот такая проблема, в Picturebox при нажатии на кнопку должен появится прямоугольник, но у меня не получается....

Как подгрузить картинку в PictureBox при нажатии на кнопку
Доброго времени суток... Появилась проблема... Как можно подгрузить картинку в PictureBox при нажатии на кнопку?

При нажатии на picturebox изображение показать в другом окне
здравствуйте, как сделать, чтобы при нажатии на picturebox изображение отображалось в другом окне?:)

Обработка клика при нажатии на динамически созданный pictureBox
Есть массив из pictureBox'ов PictureBox pb = new PictureBox; и есть некоторая процедура private void NewGame() { //что-то тут }...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru