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

Паззл. Как заблокировать картинку, если она помещена на нужное место

29.05.2014, 16:09. Показов 646. Ответов 6
Метки нет (Все метки)

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
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
99
100
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Lab4
{
    public partial class MainForm : Form
    {
        public MainForm(bool shuffle = true)
        {
            InitializeComponent();
            this.shuffle = shuffle;
        }
        
        int[] Pictures = new int[16];
        Image[] InitialImages = new Image[16];
        bool shuffle;
 
        private void MainForm_Load(object sender, EventArgs e)
        {
            Random rnd = new Random();
            for (int i = 0; i < 16; i++)
            {
                PictureBox pb = ((PictureBox)(this.Controls.Find("picture" + (i + 1), true)[0]));
                if (shuffle) pb.AllowDrop = true;
                int currentRandom = rnd.Next(16) + 1;
                while (Pictures.Contains(currentRandom)) currentRandom = rnd.Next(16) + 1;
                Pictures[i] = currentRandom;
                InitialImages[i] = pb.Image;
            }
            if (shuffle) Shuffle();
        }
 
        private void Shuffle()
        {
            for (int i = 0; i < 16; i++)
            {
                PictureBox pb = ((PictureBox)(Controls.Find("picture" + (i + 1), true)[0]));
                pb.Image = InitialImages[Pictures[i] - 1];
                pb.Tag = Pictures[i] - 1;
            }
        }
 
        public void UnShuffle()
        {
            this.menuStrip1.Visible = false;
            this.ShowDialog();
        }
 
        private void picture1_MouseDown(object sender, MouseEventArgs e)
        {
            DoDragDrop((PictureBox)sender, DragDropEffects.Move);
        }
 
        private void picture1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Move;
        }
 
        private void picture1_DragDrop(object sender, DragEventArgs e)
        {
            PictureBox receiver = (PictureBox)sender; //объект-приемник 
            PictureBox source = (PictureBox)e.Data.GetData((typeof(PictureBox))); //объект-источник
            int receiverNum = (int)receiver.Tag;
            int sourceNum = (int)source.Tag;
            Image Temp = receiver.Image; //Temp - вспомогательная переменная для хранения изображения
            receiver.Image = source.Image; //меняем картинки местами
            source.Image = Temp;
            receiver.Tag = sourceNum;
            source.Tag = receiverNum;
            CheckWin();
        }
 
        private void CheckWin()
        {
            int i;
            for (i = 0; i < 15; i++)
            {
                PictureBox pb1 = ((PictureBox)(Controls.Find("picture" + (i + 1), true)[0]));
                PictureBox pb2 = ((PictureBox)(Controls.Find("picture" + (i + 2), true)[0]));
                if ((int)pb1.Tag + 1 != (int)pb2.Tag)
                    return;
            }
 
            MessageBox.Show("Поздравляем! Вы собрали Паззл!", "WIN");
            Close();
        }
 
        private void полнаяКартинкаToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MainForm frm = new MainForm(false);
            frm.UnShuffle();
        }
    }
}
Вопрос: как заблокировать картинку, если она помещена на нужное место.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2014, 16:09
Ответы с готовыми решениями:

Как удалить картинку если она занята другим процесом
Есть у меня picturebox в нем открывается картинка из папки Photo еще эта картинка сохраняется в...

Как спарсить картинку, если она подгружается из ЯваСкрипта?
В общем все в заголовке, как мне спарсить ссылку на картинку со страницы, если она подгружается при...

как поместить в нужное место
Здравствуйте господа програмисты!у меня такой вопрос-я допустим сделал программу,как её програмно...

Подмена ссылки на картинку, если она не найдена
Всем привет! Как можно реалзовать такую функцию. Есть один сайт site.ru, который использует два...

6
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
29.05.2014, 16:13 2
Гм, ну, не вызывать метод DoDragDrop, вестимо...
0
1 / 1 / 0
Регистрация: 08.06.2013
Сообщений: 30
29.05.2014, 16:19  [ТС] 3
Spawn, ээээм. Код сможете написать, буду вам очень благодарен.
0
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
29.05.2014, 16:30 4
Ясно, код не Вы писали...
Перед этой строкой должна быть проверка, а в нужном ли месте лежит картинка...
C#
1
DoDragDrop((PictureBox)sender, DragDropEffects.Move);
0
1 / 1 / 0
Регистрация: 08.06.2013
Сообщений: 30
29.05.2014, 16:42  [ТС] 5
Spawn, структура такая?
C#
1
2
if (...) DoDragDrop((PictureBox)sender, DragDropEffects.Move);
else return;
0
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
29.05.2014, 16:46 6
leonidoz777, ну, да.
Или даже просто
C#
1
2
if (!(...))
    DoDragDrop((PictureBox)sender, DragDropEffects.Move);
0
1 / 1 / 0
Регистрация: 08.06.2013
Сообщений: 30
29.05.2014, 17:09  [ТС] 7
Spawn, помогите, пожалуйста, с условием!) Зачет горит)
p.s. Тут дали совет, что условие можно вставить сюда:
C#
1
2
3
4
5
6
            PictureBox receiver = (PictureBox)sender; //объект-приемник 
            PictureBox source = (PictureBox)e.Data.GetData((typeof(PictureBox))); //объект-источник
            int receiverNum = (int)receiver.Tag;
            int sourceNum = (int)source.Tag;
            if (...)
            Image Temp = receiver.Image; //Temp - вспомогательная переменная для хранения изображения
0
29.05.2014, 17:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2014, 17:09
Помогаю со студенческими работами здесь

Как вставить курсор в нужное место?
При клике на кнопку, в блок (с атрибутом contenteditable) помещается имя и оборачивается в элемент...

Подскажите как наложить картинку на картинку так что бы она была резиновая
&lt;div class=&quot;right&quot;&gt; &lt;div class=&quot;bg&quot;&gt; &lt;img...

Как вставить в список a2 элемент b, в нужное место
Как вставить в список a2 элемент b, в нужное место, т.е должно быть , как условие записать?

Как добавить собственный UIView в нужное место?
Есть myView.xib, в котором один View с кнопочками. Есть класс MyUIView от IUView. В IB класс...


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

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