powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / List<T>... C#
25 сообщений из 43, страница 1 из 2
List<T>... C#
    #38258268
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех
вопрос такой - в рантайме на форме создаю контролы, закидываю их в List
а как потом дорваться до свойств сохраненных контролов?
на Delphi подобное делал - все свойства доступны были, а тут оказывается нет
Код: 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.
  TObjects = _Objects.Split(';');    //имена полей
            i = 0;
            foreach (string TObject in TObjects)
            {
                string[] TAttrs = TObject.Split(':');
                Qtd = TAttrs[0].Substring(3, 1);
                clss = TAttrs[0].Substring(1, 2);
                Enabled = TAttrs[0].Substring(0, 1);
                if (clss == "TB")
                {
                    tb = new TextBox();
                    tb.AutoSize = true;
                    tb.Location = new Point(MaxWidth + 10, Y);
                    if (Enabled == "+") tb.Enabled = true;
                    else tb.Enabled = false;
                    tb.Name = TAttrs[1];
                    tb.Text = "";
                    tb.Size = new Size(200, 13);
                    this.Controls.Add(tb);
                    tb.Show();
                    AObjects.Add(tb);
                }
                if (clss == "CB")
                {
                    try
                    {
                        clientSocket.Connect("127.0.0.1", 8888);
                    }
                    catch (Exception ex)
                    {
                        // MessageBox.Show("Ошибка!\n\n" + ex.Message, "Ошибка SQL", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    SendCmd(_CMD_LIST + ";SprBanks");
                    NetworkStream Stream = clientSocket.GetStream();
                    int size = (int)clientSocket.ReceiveBufferSize;
                    byte[] ReceivedBytes = new byte[size];
                    Stream.Read(ReceivedBytes, 0, size);
                    data = DeserializeData(ReceivedBytes);
                    data.WriteXml(@"baa.xml");
                    cb = new ComboBox();
                    cb.AutoSize = true;
                    cb.Location = new Point(MaxWidth + 10, Y);
                    if (Enabled == "+") cb.Enabled = true;
                    else cb.Enabled = false;
                    cb.Name = TAttrs[1];
                    cb.Text = "";
                    cb.Size = new Size(200, 13);
                    this.Controls.Add(cb);
                    cb.Show();
                    cb.DataSource = data.Tables[0].DefaultView;
                    cb.DisplayMember = "Name";
                    cb.ValueMember = "Id";
                    cb.SelectedIndex = 0;
                    AObjects.Add(cb);
                }
                Labs[i].Left = 6 + MaxWidth - Labs[i].Width;
                i++;
                Y += 24;
            }
        }



типа добавили контролы

а теперь пытаюсь читать их свойства
_fSQL_Update +=(AObjects[i]).

по вякому крутил - ничего не выходит....

как правильно это делается?

заранее спасибо!!!
...
Рейтинг: 0 / 0
List<T>... C#
    #38258357
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или как лучше сделать - на форме будут контролы а их число и какие они заранее неизвестно
ведь все что надо - это создавать контрол и сохранять ссылку на него по которой потом можно получить все его свойства
в Delphi катит а в C# нет
...
Рейтинг: 0 / 0
List<T>... C#
    #38258407
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75,
linq to object
...
Рейтинг: 0 / 0
List<T>... C#
    #38258416
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиGaladriel75,
linq to object

я подозреваю, что свойства недоступны из-за того, что в List накидал объекты разных классов?
а что такое linq to object?? как на русский ее перевести я в курсе если что...
а как к теме оно применяется?
...
Рейтинг: 0 / 0
List<T>... C#
    #38258422
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75Где-то в степиGaladriel75,
linq to object

я подозреваю, что свойства недоступны из-за того, что в List накидал объекты разных классов?
а что такое linq to object?? как на русский ее перевести я в курсе если что...
а как к теме оно применяется?
начинаю гуглить по линку к объекту
...
Рейтинг: 0 / 0
List<T>... C#
    #38258426
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75Galadriel75пропущено...


я подозреваю, что свойства недоступны из-за того, что в List накидал объекты разных классов?
а что такое linq to object?? как на русский ее перевести я в курсе если что...
а как к теме оно применяется?
начинаю гуглить по линку к объекту
о ужас зачем все так усложнять...
...
Рейтинг: 0 / 0
List<T>... C#
    #38258428
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
как вариант

private void button1_Click(object sender, EventArgs e)
        {
            Func<Point> location = () =>
                {
                    var controls = this.Controls.Find("labelnew", false);
                    if (controls.Any())
                    {
                        var lastControl = controls.Last();
                        return new Point(lastControl.Location.X, lastControl.Location.Y + 40);
                    }
                    else
                    {
                        return new Point(button1.Location.X, button1.Location.Y + 40); 
                    }
                };
            this.Controls.Add(new Label()
                {
                    Name = "labelnew",
                    Text = "New Label",
                    Location = location()
                });
        }
...
Рейтинг: 0 / 0
List<T>... C#
    #38258451
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75,авторо ужас зачем все так усложнять... да вы без этого не программист нет, а просто насрано,( я надеюсь не обидел вас), и второе, если до чего то не можете достучаться, выделите это что то в интерфейс, и приводите все обьекты к нему,
без знаний интерфейсов это то же сродни насрано...( не хотел никого обидеть)
...
Рейтинг: 0 / 0
List<T>... C#
    #38258454
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deza
Код: 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.
как вариант

private void button1_Click(object sender, EventArgs e)
        {
            Func<Point> location = () =>
                {
                    var controls = this.Controls.Find("labelnew", false);
                    if (controls.Any())
                    {
                        var lastControl = controls.Last();
                        return new Point(lastControl.Location.X, lastControl.Location.Y + 40);
                    }
                    else
                    {
                        return new Point(button1.Location.X, button1.Location.Y + 40); 
                    }
                };
            this.Controls.Add(new Label()
                {
                    Name = "labelnew",
                    Text = "New Label",
                    Location = location()
                });
        }



я еще совсем практически c# не знаю... Это обработчик клика по кнопке внутри которого контрол ищется и описывается шаблон функции ???
я просто ищу способ доступа к разношерстным динамически созданным контролам на форме
...
Рейтинг: 0 / 0
List<T>... C#
    #38258455
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиGaladriel75,авторо ужас зачем все так усложнять... да вы без этого не программист нет, а просто насрано,( я надеюсь не обидел вас), и второе, если до чего то не можете достучаться, выделите это что то в интерфейс, и приводите все обьекты к нему,
без знаний интерфейсов это то же сродни насрано...( не хотел никого обидеть)
с интерфейсами потом разберусь а сейчас надо сделать это
...
Рейтинг: 0 / 0
List<T>... C#
    #38258458
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75Deza
Код: 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.
как вариант

private void button1_Click(object sender, EventArgs e)
        {
            Func<Point> location = () =>
                {
                    var controls = this.Controls.Find("labelnew", false);
                    if (controls.Any())
                    {
                        var lastControl = controls.Last();
                        return new Point(lastControl.Location.X, lastControl.Location.Y + 40);
                    }
                    else
                    {
                        return new Point(button1.Location.X, button1.Location.Y + 40); 
                    }
                };
            this.Controls.Add(new Label()
                {
                    Name = "labelnew",
                    Text = "New Label",
                    Location = location()
                });
        }



я еще совсем практически c# не знаю... Это обработчик клика по кнопке внутри которого контрол ищется и описывается шаблон функции ???
я просто ищу способ доступа к разношерстным динамически созданным контролам на форме

обработчик клика по кнопке, которая находится на форме, не важно где,
...
Рейтинг: 0 / 0
List<T>... C#
    #38258469
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75Deza
Код: 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.
как вариант

private void button1_Click(object sender, EventArgs e)
        {
            Func<Point> location = () =>
                {
                    var controls = this.Controls.Find("labelnew", false);
                    if (controls.Any())
                    {
                        var lastControl = controls.Last();
                        return new Point(lastControl.Location.X, lastControl.Location.Y + 40);
                    }
                    else
                    {
                        return new Point(button1.Location.X, button1.Location.Y + 40); 
                    }
                };
            this.Controls.Add(new Label()
                {
                    Name = "labelnew",
                    Text = "New Label",
                    Location = location()
                });
        }



я еще совсем практически c# не знаю... Это обработчик клика по кнопке внутри которого контрол ищется и описывается шаблон функции ???
я просто ищу способ доступа к разношерстным динамически созданным контролам на форме
обработчик клика по кнопке, которая находится на форме, не важно где,
в обработчике создается новый контрол типа label и помещается под кнопку, так же присутствует анонимный делегат(анонимная функция), которая вычисляет место положение нового контрола
...
Рейтинг: 0 / 0
List<T>... C#
    #38258471
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaGaladriel75пропущено...


я еще совсем практически c# не знаю... Это обработчик клика по кнопке внутри которого контрол ищется и описывается шаблон функции ???
я просто ищу способ доступа к разношерстным динамически созданным контролам на форме

обработчик клика по кнопке, которая находится на форме, не важно где,

мне сейчас не это главное... мне нужен доступ к свойствам к кучек динамически созданных разных контролов
...
Рейтинг: 0 / 0
List<T>... C#
    #38258472
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75я просто ищу способ доступа к разношерстным динамически созданным контролам на форме

Код: c#
1.
var controls = this.Controls.Find(имя контрола, false);
...
Рейтинг: 0 / 0
List<T>... C#
    #38258474
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75Dezaпропущено...


обработчик клика по кнопке, которая находится на форме, не важно где,

мне сейчас не это главное... мне нужен доступ к свойствам к кучек динамически созданных разных контролов
в моем примере это есть
...
Рейтинг: 0 / 0
List<T>... C#
    #38258475
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75,
это не надо делать, ибо это не это, лучше освойте интерфейсы, и linq.
без них
1 Вас не возьмут никуда на работу.
2 А если возьмут, по недоразумению, старшие товарищи будут видеть смысл посылать вас только за пивом.
3 Вас не будут любить девушки ( ибо вы недопрограммист)
4 У вас не откроется третий глаз на программирование как профессию.
5 Вы никогда до старости не сможете выразить мысль в программистской среде в адекватной форме..
...
Рейтинг: 0 / 0
List<T>... C#
    #38258517
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиGaladriel75,
это не надо делать, ибо это не это, лучше освойте интерфейсы, и linq.
без них
1 Вас не возьмут никуда на работу.
2 А если возьмут, по недоразумению, старшие товарищи будут видеть смысл посылать вас только за пивом.
3 Вас не будут любить девушки ( ибо вы недопрограммист)
4 У вас не откроется третий глаз на программирование как профессию.
5 Вы никогда до старости не сможете выразить мысль в программистской среде в адекватной форме..

мне пока не нужно осваивать интерфейсы

1. меня на работу берут всюду, причем даже не на рядовые должности, и у меня есть возможность выбора
2. делаю сложные проекты
3. девушки любили сейчас любит жена, программист я нормальный
4. таланты давно открылись и развиваются
5. все отлично и адекватно выражаю

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

я всего лишь только начал изучать C# а он мне про интерфейсы впаривает - я вопрос РЕШИЛ всего лишь одной строчкой без интерфейсов, умник!
...
Рейтинг: 0 / 0
List<T>... C#
    #38258518
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
топик можно закрывать
...
Рейтинг: 0 / 0
List<T>... C#
    #38258527
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если кому интересно вот так наугад написал, а оно заработало:

Код: c#
1.
2.
             Object ob = AObjects[i];
             _fSQL_Update += (ob as TextBox).Text;
...
Рейтинг: 0 / 0
List<T>... C#
    #38258537
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75если кому интересно вот так наугад написал, а оно заработало:

Код: c#
1.
2.
             Object ob = AObjects[i];
             _fSQL_Update += (ob as TextBox).Text;



очередной велосипед


авторталанты давно открылись и развиваются

по вашему коду не видно
...
Рейтинг: 0 / 0
List<T>... C#
    #38258538
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75,
как объявлен AObjects?
...
Рейтинг: 0 / 0
List<T>... C#
    #38258547
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaGaladriel75если кому интересно вот так наугад написал, а оно заработало:

Код: c#
1.
2.
             Object ob = AObjects[i];
             _fSQL_Update += (ob as TextBox).Text;



очередной велосипед


авторталанты давно открылись и развиваются

по вашему коду не видно
я сишарп тольео только начал
...
Рейтинг: 0 / 0
List<T>... C#
    #38258548
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВGaladriel75,
как объявлен AObjects?
List<object> AObjects = new List<object>();
...
Рейтинг: 0 / 0
List<T>... C#
    #38258558
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75я сишарп тольео только начал
а вы не думали, что есть уже готовая коллекция со всеми контролами, тем более вы ее используете для добавления -
this.Controls
и не надо изобретать велосипед
...
Рейтинг: 0 / 0
List<T>... C#
    #38258559
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75если кому интересно вот так наугад написал, а оно заработало:

Код: c#
1.
2.
             Object ob = AObjects[i];
             _fSQL_Update += (ob as TextBox).Text;

Правильнее написать:
Код: c#
1.
_fSQL_Update += ((TextBox)ob).Text;


После as обязательно должна следовать проверка на null.
...
Рейтинг: 0 / 0
25 сообщений из 43, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / List<T>... C#
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]