0 / 0 / 0
Регистрация: 05.03.2012
Сообщений: 5
1

Динамическое создание компонентов и подписка их на события 2

06.03.2012, 09:04. Показов 1010. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
В процессе работы возник ещё один вопрос.
Программа у меня запускается, но при нажатии на panel мне выдаёт такую ошибку: "В экземпляре объекта не задана ссылка на объект."

Ошибка возникает в этом участке кода:

C#
1
panel[i].Click += new EventHandler((s, args) => { (s as Panel).BackColor = Color.Black; for (int j = 0; j < panel.Length; j++) { if ((panel[j].Left == ((s as Panel).Left - 5) && panel[j].Top == ((s as Panel).Top - 30) && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left - 35) && panel[j].Top == (s as Panel).Top && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left - 5) && panel[j].Top == ((s as Panel).Top + 5) && panel[j].BackColor == Color.Black)) panel[i - 1].BackColor = Color.Black; if ((panel[j].Left == ((s as Panel).Left + 30) && panel[j].Top == ((s as Panel).Top - 30) && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left + 35) && panel[j].Top == (s as Panel).Top && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left + 30) && panel[j].Top == ((s as Panel).Top + 5) && panel[j].BackColor == Color.Black)) panel[i + 1].BackColor = Color.Black; } });
Вот весь код целиком:

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
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 sticks
{
    public partial class Form1 : Form
    {
        Panel[] panel = new Panel[341];
 
        public Form1()
        {
            InitializeComponent();
 
            int i = 0, hpos = 0, vpos = 0, width = 0, height = 0;
            
            for (int row = 0; row < 21; row++)
            {
                hpos = 0;
 
                if ((row & 1) == 0)
                {
                    height = 5;
                    vpos += 30;
 
                    for (int col = 0; col < 21; col++)
                    {
                        if ((col & 1) == 0) { width = 5; hpos += 30; }
                        else { width = 30; hpos += 5; }
 
                        panel[i] = new Panel();
                        panel[i].Name = "panel" + i.ToString();
                        panel[i].TabIndex = 0;
                        panel[i].Size = new Size(width, height);
                        panel[i].Location = new Point(hpos, vpos);
                        panel[i].BackColor = SystemColors.ControlLight;
 
                        if ((col & 1) != 0)
                        {
                            panel[i].MouseEnter += new EventHandler((s, args) => { if ((s as Panel).BackColor != Color.Black) (s as Panel).BackColor = SystemColors.ActiveBorder; });
                            panel[i].MouseLeave += new EventHandler((s, args) => { if ((s as Panel).BackColor != Color.Black) (s as Panel).BackColor = SystemColors.ControlLight; });
                            panel[i].Click += new EventHandler((s, args) => { (s as Panel).BackColor = Color.Black; for (int j = 0; j < panel.Length; j++) { if ((panel[j].Left == ((s as Panel).Left - 5) && panel[j].Top == ((s as Panel).Top - 30) && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left - 35) && panel[j].Top == (s as Panel).Top && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left - 5) && panel[j].Top == ((s as Panel).Top + 5) && panel[j].BackColor == Color.Black)) panel[i - 1].BackColor = Color.Black; if ((panel[j].Left == ((s as Panel).Left + 30) && panel[j].Top == ((s as Panel).Top - 30) && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left + 35) && panel[j].Top == (s as Panel).Top && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left + 30) && panel[j].Top == ((s as Panel).Top + 5) && panel[j].BackColor == Color.Black)) panel[i + 1].BackColor = Color.Black; } });
                        }
 
                        Controls.Add(panel[i]); if (i < panel.Length - 1) i++; else break;
                    }
                }
                else
                {
                    height = 30;
                    vpos += 5;
 
                    for (int col = 0; col < 11; col++)
                    {
                        width = 5;
                        hpos += 35;
 
                        panel[i] = new Panel();
                        panel[i].Name = "panel" + i.ToString();
                        panel[i].TabIndex = 0;
                        panel[i].Size = new Size(width, height);
                        panel[i].Location = new Point(hpos - 5, vpos);
                        panel[i].BackColor = SystemColors.ControlLight;
                        panel[i].MouseEnter += new EventHandler((s, args) => { if ((s as Panel).BackColor != Color.Black) (s as Panel).BackColor = SystemColors.ActiveBorder; });
                        panel[i].MouseLeave += new EventHandler((s, args) => { if ((s as Panel).BackColor != Color.Black) (s as Panel).BackColor = SystemColors.ControlLight; });
                        panel[i].Click += new EventHandler((s, args) => { (s as Panel).BackColor = Color.Black; for (int j = 0; j < panel.Length; j++) { if ((panel[j].Left == (s as Panel).Left && panel[j].Top == ((s as Panel).Top - 35) && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left - 30) && panel[j].Top == ((s as Panel).Top - 5) && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left + 35) && panel[j].Top == ((s as Panel).Top - 5) && panel[j].BackColor == Color.Black)) panel[i - 1].BackColor = Color.Black; if ((panel[j].Left == ((s as Panel).Left - 30) && panel[j].Top == ((s as Panel).Top + 30) && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left + 35) && panel[j].Top == ((s as Panel).Top + 30) && panel[j].BackColor == Color.Black) || (panel[j].Left == (s as Panel).Left && panel[j].Top == ((s as Panel).Top + 35) && panel[j].BackColor == Color.Black)) panel[i + 1].BackColor = Color.Black; } });
                        Controls.Add(panel[i]);
                    }
                }
            }
        }
    }
}
Подскажите, пожалуйста, в чём ошибка.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2012, 09:04
Ответы с готовыми решениями:

Динамическое создание компонентов и подписка их на события
Добрый день! Я начинающий программист, пытаюсь разобраться с созданием массивов control-ов и ихних...

Динамическое создание компонентов и подписка их на события
Здравствуйте! Меня интересует вопрос: как можно создать что-нибудь по заготовке? Звучит туманно, но...

Динамическое создание объектов. Подписка на событие
У меня есть несколько linkbuttons которые создаются динамически, им всем присваиваю 1 общее событие...

Создание динамического DataGridView и подписка на события
public DataGridView arrayDG = new DataGridView; Вот есть код для создания несколько таблиц, я знаю...

5
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
06.03.2012, 09:15 2
Опять вы используете i в лямбдах-обработчиках. Та же самая ошибка.


И не пишите никогда такие огромные куски кода в одну строчку. Делайте переносы, а еще лучше выделяйте отдельные методы.
0
0 / 0 / 0
Регистрация: 05.03.2012
Сообщений: 5
07.03.2012, 01:45  [ТС] 3
Извиняюсь, сделал переносы:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
panel[i].Click += new EventHandler((s, args) =>
{
    (s as Panel).BackColor = Color.Black;
 
    for (int j = 0; j < panel.Length; j++)
    {
        if ((panel[j].Left == ((s as Panel).Left - 5) && panel[j].Top == ((s as Panel).Top - 30) && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left - 35) && panel[j].Top == (s as Panel).Top && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left - 5) && panel[j].Top == ((s as Panel).Top + 5) && panel[j].BackColor == Color.Black))
        {
            panel[i - 1].BackColor = Color.Black;
        }
 
        if ((panel[j].Left == ((s as Panel).Left + 30) && panel[j].Top == ((s as Panel).Top - 30) && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left + 35) && panel[j].Top == (s as Panel).Top && panel[j].BackColor == Color.Black) || (panel[j].Left == ((s as Panel).Left + 30) && panel[j].Top == ((s as Panel).Top + 5) && panel[j].BackColor == Color.Black))
        {
            panel[i + 1].BackColor = Color.Black;
        }
    }
});
Но насколько знаю, условия в if-ах переносить нельзя..

Мне нужно чтобы в зависимости от условия, предыдущая или следующая по счёту panel, меняла свой цвет:

C#
1
2
3
4
5
6
7
8
9
10
11
panel[i].Click += new EventHandler((s, args) =>
{
    (s as Panel).BackColor = Color.Black;
 
    for (int j = 0; j < panel.Length; j++)
    {
        if (...) panel[i - 1].BackColor = Color.Black;
 
        if (...) panel[i + 1].BackColor = Color.Black;
    }
});
Не могу врубится, как это сделать, чтобы ошибка не вылетала..
Здесь мы берём текущий panel таким способом: (s as Panel). А как тогда взять предыдущий или следующий что бы вместо i поставить?

Добавлено через 16 минут
А, нет, ошибка выскакивает именно в if-е:

C#
1
2
3
4
5
6
7
8
9
if ((panel[j].Left == (s as Panel).Left &&
panel[j].Top == ((s as Panel).Top - 35) &&
panel[j].BackColor == Color.Black) ||
(panel[j].Left == ((s as Panel).Left - 30) &&
panel[j].Top == ((s as Panel).Top - 5) &&
panel[j].BackColor == Color.Black) ||
(panel[j].Left == ((s as Panel).Left + 35) &&
panel[j].Top == ((s as Panel).Top - 5) &&
panel[j].BackColor == Color.Black))
Добавлено через 9 часов 11 минут
panel[j] - В экземпляре объекта не задана ссылка на объект. Как это исправить?
0
84 / 84 / 14
Регистрация: 15.02.2011
Сообщений: 252
07.03.2012, 08:08 4
Но насколько знаю, условия в if-ах переносить нельзя..
Можно.

C#
1
2
3
4
5
6
7
8
9
10
11
12
if ((panel[j].Left == ((s as Panel).Left - 5) &&
         panel[j].Top == ((s as Panel).Top - 30) && 
         panel[j].BackColor == Color.Black) || 
         (panel[j].Left == ((s as Panel).Left - 35) &&
         panel[j].Top == (s as Panel).Top &&
         panel[j].BackColor == Color.Black) ||
         (panel[j].Left == ((s as Panel).Left - 5) && 
         panel[j].Top == ((s as Panel).Top + 5) &&
         panel[j].BackColor == Color.Black))
        {
            panel[i - 1].BackColor = Color.Black;
        }
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
07.03.2012, 08:25 5
Цитата Сообщение от panfilov Посмотреть сообщение
panel[j] - В экземпляре объекта не задана ссылка на объект. Как это исправить?
Проблема не в panel[j], я же объяснил суть - нельзя использовать i в методе обработчике. Вы читаете посты вообще?

Если вам надо найти в обработчике предыдущую и следующие панели придется их искать ручками.
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
panel[i].Click += new EventHandler((obj, args) =>
{
    Panel s = obj as Panel;
    int k = Array.IndexOf(panel, s); //Находим индекс в массиве. i использовать НЕЛЬЗЯ
    s.BackColor = Color.Black;
 
    for (int j = 0; j < panel.Length; j++)
    {
        if ((panel[j].Left == (s.Left - 5) && panel[j].Top == (s.Top - 30) && panel[j].BackColor == Color.Black) ||
            (panel[j].Left == (s.Left - 35) && panel[j].Top == s.Top && panel[j].BackColor == Color.Black) ||
            (panel[j].Left == (s.Left - 5) && panel[j].Top == (s.Top + 5) && panel[j].BackColor == Color.Black))
        {
            if (k!=0)
               panel[k - 1].BackColor = Color.Black;
        }
 
        if ((panel[j].Left == (s.Left + 30) && panel[j].Top == (s.Top - 30) && panel[j].BackColor == Color.Black) ||
            (panel[j].Left == (s.Left + 35) && panel[j].Top == s.Top && panel[j].BackColor == Color.Black) ||
            (panel[j].Left == (s.Left + 30) && panel[j].Top == (s.Top + 5) && panel[j].BackColor == Color.Black))
        {
            if (k!=panel.Length-1)
               panel[k + 1].BackColor = Color.Black;
        }
    }
});
Не пишите код с лямбдами если не понимаете как они работают - выделите под обработчик отдельный обычный метод.
1
0 / 0 / 0
Регистрация: 05.03.2012
Сообщений: 5
08.03.2012, 02:40  [ТС] 6
Спасибо за помощь!
Я правда, уже решил проблему немного другим способом:

1. Создал функцию:

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
void connect(object s)
{
    if ((s as Panel).Height == 5)
    {
        foreach (Control control in Controls)
        {
            Panel p = control as Panel;
 
            if (p != null)
            {
                if ((p.Left == ((s as Panel).Left - 5) &&
                    p.Top == ((s as Panel).Top - 30) &&
                    p.BackColor == Color.Black) ||
                    (p.Left == ((s as Panel).Left - 35) &&
                    p.Top == (s as Panel).Top &&
                    p.BackColor == Color.Black) ||
                    (p.Left == ((s as Panel).Left - 5) &&
                    p.Top == ((s as Panel).Top + 5) &&
                    p.BackColor == Color.Black))
                    {
                        panel[(s as Panel).TabIndex - 1].BackColor = Color.Black;
                    }
 
                if ((p.Left == ((s as Panel).Left + 30) &&
                    p.Top == ((s as Panel).Top - 30) &&
                    p.BackColor == Color.Black) ||
                    (p.Left == ((s as Panel).Left + 35) &&
                    p.Top == (s as Panel).Top &&
                    p.BackColor == Color.Black) ||
                    (p.Left == ((s as Panel).Left + 30) &&
                    p.Top == ((s as Panel).Top + 5) &&
                    p.BackColor == Color.Black))
                    {
                        panel[(s as Panel).TabIndex + 1].BackColor = Color.Black;
                    }
            }
        }
    }
    else
    {
        int p1 = 0, p2 = 0;
 
        foreach (Control control in Controls)
        {
            Panel p = control as Panel;
 
            if (p != null)
            {
                if (p.Left == (s as Panel).Left && p.Top == ((s as Panel).Top - 5))
                {
                    p1 = p.TabIndex;
                }
 
                if (p.Left == (s as Panel).Left && p.Top == ((s as Panel).Top + 30))
                {
                    p2 = p.TabIndex;
                }
            }
        }
 
        foreach (Control control in Controls)
        {
            Panel p = control as Panel;
 
            if (p != null)
            {
                if ((p.Left == (s as Panel).Left &&
                    p.Top == ((s as Panel).Top - 35) &&
                    p.BackColor == Color.Black) ||
                    (p.Left == ((s as Panel).Left - 30) &&
                    p.Top == ((s as Panel).Top - 5) &&
                    p.BackColor == Color.Black) ||
                    (p.Left == ((s as Panel).Left + 5) &&
                    p.Top == ((s as Panel).Top - 5) &&
                    p.BackColor == Color.Black))
                    {
                        panel[p1].BackColor = Color.Black;
                    }
 
                if ((p.Left == ((s as Panel).Left - 30) &&
                    p.Top == ((s as Panel).Top + 30) &&
                    p.BackColor == Color.Black) ||
                    (p.Left == ((s as Panel).Left + 5) &&
                    p.Top == ((s as Panel).Top + 30) &&
                    p.BackColor == Color.Black) ||
                    (p.Left == (s as Panel).Left &&
                    p.Top == ((s as Panel).Top + 35) &&
                    p.BackColor == Color.Black))
                    {
                        panel[p2].BackColor = Color.Black;
                    }
            }
        }
    }
}
2. В обработчике события MouseClick заменил старый код на эту функцию:

C#
1
panel[i].Click += new EventHandler((s, args) => { (s as Panel).BackColor = Color.Black; connect(s); });
Теперь всё работает
Вот код целиком:

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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
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 sticks
{
    public partial class Form1 : Form
    {
        Panel[] panel = new Panel[341];
 
        void connect(object s)
        {
            if ((s as Panel).Height == 5)
            {
                foreach (Control control in Controls)
                {
                    Panel p = control as Panel;
 
                    if (p != null)
                    {
                        if ((p.Left == ((s as Panel).Left - 5) &&
                            p.Top == ((s as Panel).Top - 30) &&
                            p.BackColor == Color.Black) ||
                            (p.Left == ((s as Panel).Left - 35) &&
                            p.Top == (s as Panel).Top &&
                            p.BackColor == Color.Black) ||
                            (p.Left == ((s as Panel).Left - 5) &&
                            p.Top == ((s as Panel).Top + 5) &&
                            p.BackColor == Color.Black))
                        {
                            panel[(s as Panel).TabIndex - 1].BackColor = Color.Black;
                        }
 
                        if ((p.Left == ((s as Panel).Left + 30) &&
                            p.Top == ((s as Panel).Top - 30) &&
                            p.BackColor == Color.Black) ||
                            (p.Left == ((s as Panel).Left + 35) &&
                            p.Top == (s as Panel).Top &&
                            p.BackColor == Color.Black) ||
                            (p.Left == ((s as Panel).Left + 30) &&
                            p.Top == ((s as Panel).Top + 5) &&
                            p.BackColor == Color.Black))
                        {
                            panel[(s as Panel).TabIndex + 1].BackColor = Color.Black;
                        }
                    }
                }
            }
            else
            {
                int p1 = 0, p2 = 0;
 
                foreach (Control control in Controls)
                {
                    Panel p = control as Panel;
 
                    if (p != null)
                    {
                        if (p.Left == (s as Panel).Left && p.Top == ((s as Panel).Top - 5))
                        {
                            p1 = p.TabIndex;
                        }
 
                        if (p.Left == (s as Panel).Left && p.Top == ((s as Panel).Top + 30))
                        {
                            p2 = p.TabIndex;
                        }
                    }
                }
 
                foreach (Control control in Controls)
                {
                    Panel p = control as Panel;
 
                    if (p != null)
                    {
                        if ((p.Left == (s as Panel).Left &&
                            p.Top == ((s as Panel).Top - 35) &&
                            p.BackColor == Color.Black) ||
                            (p.Left == ((s as Panel).Left - 30) &&
                            p.Top == ((s as Panel).Top - 5) &&
                            p.BackColor == Color.Black) ||
                            (p.Left == ((s as Panel).Left + 5) &&
                            p.Top == ((s as Panel).Top - 5) &&
                            p.BackColor == Color.Black))
                        {
                            panel[p1].BackColor = Color.Black;
                        }
 
                        if ((p.Left == ((s as Panel).Left - 30) &&
                            p.Top == ((s as Panel).Top + 30) &&
                            p.BackColor == Color.Black) ||
                            (p.Left == ((s as Panel).Left + 5) &&
                            p.Top == ((s as Panel).Top + 30) &&
                            p.BackColor == Color.Black) ||
                            (p.Left == (s as Panel).Left &&
                            p.Top == ((s as Panel).Top + 35) &&
                            p.BackColor == Color.Black))
                        {
                            panel[p2].BackColor = Color.Black;
                        }
                    }
                }
            }
        }
 
        public Form1()
        {
            InitializeComponent();
 
            int i = 0, hpos = 0, vpos = 0, width = 0, height = 0;
            
            for (int row = 0; row < 21; row++)
            {
                hpos = 0;
 
                if ((row & 1) == 0)
                {
                    height = 5;
                    vpos += 30;
 
                    for (int col = 0; col < 21; col++)
                    {
                        if ((col & 1) == 0) { width = 5; hpos += 30; }
                        else { width = 30; hpos += 5; }
 
                        panel[i] = new Panel();
                        panel[i].Name = "panel" + i.ToString();
                        panel[i].TabIndex = i;
                        panel[i].Size = new Size(width, height);
                        panel[i].Location = new Point(hpos, vpos);
                        panel[i].BackColor = SystemColors.ControlLight;
 
                        if ((col & 1) != 0)
                        {
                            panel[i].MouseEnter += new EventHandler((s, args) => { if ((s as Panel).BackColor != Color.Black) (s as Panel).BackColor = SystemColors.ActiveBorder; });
                            panel[i].MouseLeave += new EventHandler((s, args) => { if ((s as Panel).BackColor != Color.Black) (s as Panel).BackColor = SystemColors.ControlLight; });
                            panel[i].Click += new EventHandler((s, args) => { (s as Panel).BackColor = Color.Black; connect(s); });
                        }
 
                        Controls.Add(panel[i]); if (i < panel.Length - 1) i++; else break;
                    }
                }
                else
                {
                    height = 30;
                    vpos += 5;
 
                    for (int col = 0; col < 11; col++)
                    {
                        width = 5;
                        hpos += 35;
 
                        panel[i] = new Panel();
                        panel[i].Name = "panel" + i.ToString();
                        panel[i].TabIndex = i;
                        panel[i].Size = new Size(width, height);
                        panel[i].Location = new Point(hpos - 5, vpos);
                        panel[i].BackColor = SystemColors.ControlLight;
                        panel[i].MouseEnter += new EventHandler((s, args) => { if ((s as Panel).BackColor != Color.Black) (s as Panel).BackColor = SystemColors.ActiveBorder; });
                        panel[i].MouseLeave += new EventHandler((s, args) => { if ((s as Panel).BackColor != Color.Black) (s as Panel).BackColor = SystemColors.ControlLight; });
                        panel[i].Click += new EventHandler((s, args) => { (s as Panel).BackColor = Color.Black; connect(s); });
                        Controls.Add(panel[i]); i++;
                    }
                }
            }
        }
    }
}
Сейчас ещё попробую ваш вариант)
0
08.03.2012, 02:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2012, 02:40
Помогаю со студенческими работами здесь

Разработка приложений с использованием стандартных и дополнительных компонентов. Динамическое создание компонентов.
Здравствуйте! Помогите мне, пожалуйста. Условие задачи состоит в следующем: из списка выбираю...

Динамическое создание компонентов
не смог найти ничего особо понятного для себя по такому вопросу : нужно сделать программу, которая...

Динамическое создание компонентов
Не могу понять в чем ошибка - форма динамически создается, а Image на этой форме не реагирует (не...

Динамическое создание компонентов
https://www.youtube.com/watch?time_continue=69&amp;v=B7WUKJxbZmo я смог сделать чтоб компонент мог...


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

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

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