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

Блокировка элементов

04.10.2013, 19:12. Показов 2506. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я пишу игру крестики-нолики, но модифицированную немного(http://fishki.net/52095-usover... -foto.html). Есть девять полей и в каждом по 9 ячеек. Например первый делает ход в любое поле в 6 ячейку, значит второй ходит в 6 поле, например в 4 ячейку. И следующий ходит в 4 поле. И так далее. Собственно в чём проблема: Как заблокировать все поля, кроме того в которое можно ходить??

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
91
92
93
94
95
96
97
98
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 WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        bool flag = false;
        PictureBoxExt[,] pictures;
        Size size = new Size(50, 50);
 
        int rows = 9;
        int columns = 9;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            pictures = new PictureBoxExt[rows, columns]; 
 
            int x = 50;
            int y = 50;
 
            for (int i = 0; i < rows; ++i)
            {
                for (int j = 0; j < columns; ++j)
                {
                    pictures[i, j] = new PictureBoxExt();
                    pictures[i, j].Location = new System.Drawing.Point(x, y);
                    pictures[i, j].Name = "picBox" + i;
                    pictures[i, j].Size = size;
                    pictures[i, j].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
                    pictures[i, j].MouseClick += new MouseEventHandler(PicBoxClick);
                    Controls.Add(pictures[i, j]);
 
                    if ((j == 2) || (j == 5)) { x += size.Width + 15; } else { x += size.Width + 5; }
                }
                x = 50;
                if ((i == 2) || (i == 5)) { y += size.Height + 15;} else {y += size.Height + 5;}
            }
 
        }
        private void PicBoxClick(object sender, MouseEventArgs e)
        {
            //получаем конкретный  PictureBox на который нажали
            PictureBoxExt picBox = sender as PictureBoxExt;
         
            if (picBox.State == CheckState.None)  //если нет ни крестика ни нолика
            {
                Graphics g = Graphics.FromHwnd(picBox.Handle);
                if ((e.Button == MouseButtons.Left) && ( flag == false)) //рисуем крестик
                {
                    int indent = 10;
                    g.DrawLine(Pens.Red, indent, indent, size.Width - indent, size.Height - indent);
                    g.DrawLine(Pens.Red, size.Width - indent, indent, indent, size.Height - indent);
                    picBox.State = CheckState.Krest;//отмечаем крестик
                    flag = true;
                }
                else if ((e.Button == MouseButtons.Left) && ( flag == true)) //рисуем нолик
                {
                    g.DrawEllipse(Pens.Blue, new Rectangle(5, 5, size.Width - 15, 35));
                    picBox.State = CheckState.Nolik; //отмечаем нолик
                    flag = false;
                }
                g.Dispose();
            }
            
        }
 
        enum CheckState
        {
            Nolik, Krest, None
        }
        
        class PictureBoxExt : PictureBox
        {
            public CheckState State
            {
                get;
                set;
            }
 
            public PictureBoxExt()
                : base()
            { State = CheckState.None; }
        }
    }
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.10.2013, 19:12
Ответы с готовыми решениями:

Блокировка элементов меню из класса
Друзья приветствую, есть форма с меню, имеется класс реализованный в другом модуле. Задача - необходимо из этого класса блокировать через...

Блокировка по IP
Всем доброго времени суток. В общем, проблема такая - нужно на шарпе (на крайняк на плюсах) сотворить программку, блокирующую передачу и...

Блокировка сайтов
Мне нужно создать блокиратор определённых сайтов, чтобы при обращении браузера к одной странице, он показывал другую

1
0 / 0 / 1
Регистрация: 05.10.2013
Сообщений: 2
05.10.2013, 10:35
может так ?
примерно

C#
1
2
3
4
5
6
7
8
PictureBoxExt picBox = sender as PictureBoxExt;
foreach(Control field in this.Controls)
            {
                if(field.Name != picBox.Name)
                {
                    field.Enabled = false; //ну или что-то другое , думаю понятно
                }
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.10.2013, 10:35
Помогаю со студенческими работами здесь

Блокировка компьютера
Салам всем прогерам! помогите пожалуйста как узнать разблокировку компьютера. например комп заблокирован, ввели пароль и...

Блокировка пользователя
Есть 2 класса, админ и пользователь. И метод у админа, который должен забанить пользователя, изменить его булевое свойство banned на true....

Блокировка приложения
Вопрос, существет ли решение по запрету на запуск отдельных программ. Я имею ввиду не цикличное убийство процессов типа Process...

Блокировка button
Есть объект типа button, несколько объектов точнее. При нажатии на этот объект (кнопку) он должен заблокироваться, то есть, я на него не...

Radiobutton блокировка
Мне нужно сделать выбор, например между bird и animal. Возможно можно использовать что-то другое, но я использовал два радиобаттона. Дело в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru