Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 1
Регистрация: 04.11.2013
Сообщений: 148
1

Как сделать, чтобы при клику по PictureBox там появлялась картинка?

01.03.2014, 02:20. Показов 1450. Ответов 8
Метки нет (Все метки)

я создал массив PictureBox
C#
1
 PictureBox[,] mMatrix=new PictureBox[10,10];
определил его
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for (int i = 0; i < 10; i++)
            {
                if (i != 0)
                {
                    xx += 40;
                    yy = 10;
                }
                for (int j = 0; j < 10; j++)
                {
                    mMatrix[i, j] = new PictureBox();
                    mMatrix[i, j].Location = new Point(xx,yy);
                    mMatrix[i, j].Height = 40;
                    mMatrix[i, j].Width = 40;
                    mMatrix[i, j].BorderStyle = BorderStyle.None;
                    yy += 40;
                    mMatrix[i, j].BackColor = Color.Transparent;
                    this.Controls.Add(mMatrix[i, j]);
                }
            }
Как сделать, чтобы при клику по PictureBox там появлялась картинка?
Как получить координаты PictureBox по которому был совершен клик (i,j)? (для того, чтобы знать, что по этому PictureBox уже кликали)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2014, 02:20
Ответы с готовыми решениями:

OnMouseOver - как сделать, чтобы при наведении на надпись появлялась картинка?
Здравствуйте, вопрос относительно On Mouse Over - При наведении мыши есть у кого пример не...

Как сделать так,чтобы при открытии проекта на несколько секунд появлялась картинка?
Интересует 1 вопрос. Как сделать так,чтобы при открытии проекта на несколько секунд появлялась...

По таймеру плавно появлялась картинка в pictureBox, затем исчезала, и через минуту появлялась другая картинка
Здравствуйте, пожалуйста, подскажите, как сделать в проекте на c# чтобы по таймеру плавно...

Как сделать, чтобы картинка появлялась только у выбранной ссылки
Есть картинка как сделать , чтобы она появлялась только у выбранной ссылки т.е. есть...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
8
48 / 40 / 36
Регистрация: 25.07.2013
Сообщений: 177
01.03.2014, 06:18 2
Лучший ответ Сообщение было отмечено darkmesser как решение

Решение

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
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            int xx = 0,yy = 0;
            PictureBox[,] mMatrix = new PictureBox[10, 10];
            for (int i = 0; i < 10; i++)
            {
                if (i != 0)
                {
                    xx += 40;
                    yy = 0;
                }
                for (int j = 0; j < 10; j++)
                {
                    mMatrix[i, j] = new PictureBox();
                    mMatrix[i, j].Location = new Point(xx,yy);
                    mMatrix[i, j].Height = 40;
                    mMatrix[i, j].Width = 40;
                    mMatrix[i, j].BorderStyle = BorderStyle.None;
                    yy += 80;
                    mMatrix[i, j].BackColor = Color.Green;
                    this.panel1.Controls.Add(mMatrix[i, j]);
                }
 
                for(int k = 0;k<panel1.Controls.Count;k++)
                {
                    panel1.Controls[k].Click += new System.EventHandler(this.PictureSet); //перебираем все pictirebox добавленные на панель и подписываемся на событие
                }
            }
        }
 
        private Bitmap MyImage;
        private void PictureSet(Object sender, EventArgs e)//срабатывание события при нажатии на picturebox
        {
            //выполняем действия, задаем картинку 
            var pict = (PictureBox)sender;
            MyImage = new Bitmap("c:\\picture.png");
            pict.Image = (Image)MyImage;            
        }
    }
0
0 / 0 / 1
Регистрация: 04.11.2013
Сообщений: 148
01.03.2014, 11:26  [ТС] 3
quakeer, спасибо!
как при клике по PictureBox получить координаты i,j, которые задаются при создании маcсиdа PictureBox mMatrix [,]?
0
405 / 357 / 82
Регистрация: 07.10.2009
Сообщений: 558
01.03.2014, 11:32 4
Цитата Сообщение от darkmesser Посмотреть сообщение
как при клике по PictureBox получить координаты
Здесь посмотрите.
0
0 / 0 / 1
Регистрация: 04.11.2013
Сообщений: 148
01.03.2014, 12:11  [ТС] 5
Pooh,
посмотрите, пожалуйста, может я что-то неправильно сделал?
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
for (int i = 0; i < 10; i++)
            {
                if (i != 0)
                {
                    xx += 40;
                    yy = 10;
                }
                for (int j = 0; j < 10; j++)
                {
                    PictureBox p = new PictureBox();
                    p.Click += new EventHandler(p_Click);
                    Index index = new Index();
                    index.I = i;
                    index.J = j;
                    p.Tag = index;
                    mMatrix[i, j] = p;
                    mMatrix[i, j].Location = new Point(xx,yy);
                    mMatrix[i, j].Height = 40;
                    mMatrix[i, j].Width = 40;
                    mMatrix[i, j].BorderStyle = BorderStyle.None;
                    yy += 40;
                    mMatrix[i, j].BackColor = Color.Transparent;
                    this.Controls.Add(mMatrix[i, j]);
                }
            }
C#
1
2
3
4
5
6
7
8
9
void p_Click(object sender, EventArgs e)
{
    PictureBox p = sender as PictureBox;
        //получаем индексы
    int indexI = ((Index)(mMatrix[1, 2].Tag)).I;
    int indexJ = ((Index)(mMatrix[1, 2].Tag)).J;
    textBox1.Text = Convert.ToString(indexI);
    textBox1.Text = Convert.ToString(indexJ);
}
0
48 / 40 / 36
Регистрация: 25.07.2013
Сообщений: 177
01.03.2014, 12:12 6
Либо, можно, например, так:
C#
1
mMatrix[i,j].Name = i + "," + j;
C#
1
2
3
4
5
6
7
8
9
private Bitmap MyImage;
        private void PictureSet(Object sender, EventArgs e)//срабатывание события при нажатии на picturebox
        {
            //выполняем действия, задаем картинку 
            var pict = (PictureBox)sender;
            MyImage = new Bitmap(@"c:\picture.png", true);
            pict.Image = (Image)MyImage;
            var coordinates = pict.Name.Split(',');//получаем координаты через имя pixturebox            
        }
0
0 / 0 / 1
Регистрация: 04.11.2013
Сообщений: 148
01.03.2014, 12:22  [ТС] 7
quakeer, и что мы получим в coordinates?
0
48 / 40 / 36
Регистрация: 25.07.2013
Сообщений: 177
01.03.2014, 12:24 8
Цитата Сообщение от darkmesser Посмотреть сообщение
и что мы получим в coordinates?
Мы получаем массив из 2-х элементов, в котором первое значение это расположение по горизонтали, а второе значение это расположение по вертикали. То есть координаты picturebox.
0
405 / 357 / 82
Регистрация: 07.10.2009
Сообщений: 558
01.03.2014, 13:05 9
Цитата Сообщение от darkmesser Посмотреть сообщение
может я что-то неправильно сделал?
Это я там какую-то фигню написал. Нужно заменить в событии Click
C#
1
2
int indexI = ((Index)(mMatrix[1, 2].Tag)).I;
    int indexJ = ((Index)(mMatrix[1, 2].Tag)).J;
на
C#
1
2
int indexI = ((Index)(p.Tag)).I;
    int indexJ = ((Index)(p.Tag)).J;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2014, 13:05

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как сделать так, чтобы по клику на картинке в форме появлялась ещё одна.(реплики персонажа)
Как сделать так, чтобы по клику на картинке в форме появлялась ещё одна. Пользователь кликает на...

Как сделать так чтобы нажимая на картинку из одной формы открывалась другая при этом эта же картинка там же отображалась
Как сделать так чтобы нажимая на картинку из одной формы открывалась другая(как открывалась знаю)...

как сделать при вводе в текстбокс определенного значения, картинка появлялась?
вопрос...:как сделать при вводе в текстбокс определенного значения, картинка появлялась?с помощью...

Как сделать что бы при клике по кнопке в Image появлялась картинка
Как сделать что бы при клике по кнопке, в Image появлялась картинка, а при клике по др соотв. др...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.