Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2013, 18:02   #1
itea4you.ru
Пользователь
 
Регистрация: 24.03.2011
Сообщений: 12
По умолчанию Динамически созданный Control (PictureBox)

Здравствуйте. Создаю динамически picturebox'ы и заполняю их изображениями. Вопрос: как при нажатии на контрол получить его TabIndex?
Вот код:
Код:
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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

         
        PictureBox[] pxb = new PictureBox[40];
        Image img = Image.FromFile("folder.ico");

        private void Form1_Load(object sender, EventArgs e)
        {
            var rast = 0;
            
            rast = img.Size.Height;
            for (int j = 0; j < 8; j++)
            {
                for (int i = 0; i < 5; i++)
                {
                    pxb[i] = new System.Windows.Forms.PictureBox();
                    pxb[i].Location = new System.Drawing.Point(0 + img.Size.Width * i, 10 + rast * j);
                    pxb[i].Name = "PictureBox" + i.ToString();
                    pxb[i].Size = new System.Drawing.Size(120, 120);
                    pxb[i].TabIndex = i;
                    Controls.Add(pxb[i]);
                    pxb[i].Image = img;
                    
                }

            }
           
        }

        private void Form1_DoubleClick(object sender, EventArgs e)
        {

        } 

        
    }
}
itea4you.ru вне форума Ответить с цитированием
Старый 26.10.2013, 18:23   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а "нажатие на контрол " где?
eval вне форума Ответить с цитированием
Старый 26.10.2013, 18:46   #3
itea4you.ru
Пользователь
 
Регистрация: 24.03.2011
Сообщений: 12
По умолчанию

Воо, именно про это я и спрашиваю. Первый раз с этим столкнулся. Контрол то у нас создается постфактум, поэтому я хз в какой обработчик события код пихать
itea4you.ru вне форума Ответить с цитированием
Старый 26.10.2013, 21:07   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Код:
pxb[i].Click += ...
eval вне форума Ответить с цитированием
Старый 27.10.2013, 12:39   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Как уже сказал Вам eval (намёком), надо завести обработчик, что-то типа
Код:
private void PBClick(object sender, EventArgs e)
{

}
назначить его пичкебоксу:
Цитата:
Сообщение от eval Посмотреть сообщение
Код:
pxb[i].Click += PBClick;
и в его теле обрабатывать сендер (контрол, вызвавший событие), примерно так:
Код:
private void PBClick(object sender, EventArgs e)
{
    MessageBox.Show((sender as PictureBox).TabIndex.ToString());
}
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик на динамически созданный компонент lexo Общие вопросы Delphi 5 01.06.2013 20:27
Динамическое добавление столбцов в динамически созданный DBGrid Desha БД в Delphi 8 09.12.2012 17:33
Перетаскиавние формы за динамически созданный компонент MyIE Общие вопросы Delphi 1 10.10.2010 11:15
Динамически созданный обьект, процедуры heart Общие вопросы Delphi 3 09.05.2009 17:32
Динамически созданный tabSheet S@fer Общие вопросы Delphi 7 08.04.2009 12:03