Xml в TreeView со связью данных

Стартовая страница Форумы Разработка и интеграция Xml в TreeView со связью данных

Просмотр 15 сообщений - с 31 по 45 (из 53 всего)
  • Автор
    Сообщения
  • #33086
    manjey73
    Участник

    Оно как бы и работает, можно и забить, но по мне это как-то криво, каждую букву все это делать.

    #33105
    Mikhail
    Модератор

    Попробуйте событие AfterLabelEdit

    #33107
    manjey73
    Участник

    Интересно, как это поможет?
    Я же не сам TreeView редактирую, а текстовое поле, которое открывается на TabControl, в которое в свою очередь вызывается другая форма.
    А еще у меня кроме текстового поля есть DataGridView, даже два уже и RichTextBox 🙂

    Это наверное скорее при редактировании имен веток самого TreeView будет срабатывать.

    #33124
    Mikhail
    Модератор

    Да, для TextBox это не поможет.

    #34947
    manjey73
    Участник

    Продолжу тут, чтобы на создавать новых тем.
    Есть главная форма с TreeView и дочерние формы, которые открываются внутри главной.
    Дочерние вызываются как new Form в контроле Таб.
    Как внутри дочерних форм подписаться на нажатие кнопки находящейся на главной форме?

    Вариант передачи кнопки внутрь дочерних форм не подходит, там такое ощущение, что создаётся стек. Нужно именно из дочки выполнить подписку.

    #34948
    JurasskPark
    Участник

    public FrmConfig frmParentGloabal; // global general form

    Отсюда, вы видите все публичные свойства, функции главной формы.
    Иногда можно даже не подписываться, а просто вызывать публичный void.

    #34949
    manjey73
    Участник

    На счёт стека был направ, ноги растут из Страниц TabControl.

    tabControl.Pages.Clear() не удаляет страницы фактически. Обломс какой-то, как бы должен.

    #34950
    manjey73
    Участник

    Вызов формы

    1

    Как-то связано с количеством переходов по TreeView, то есть сколько вкладок фактически открывалось как дочерние формы.


    @JurasskPark
    на вашем оригинальном варианте еще не пробовал, у себя упростил до одной дочерней формы по сути.

    И вот где тут загвоздка непонятно абсолютно…

    #34951
    JurasskPark
    Участник

    Петуха мне в трансформаторную будку!
    Курочка и остальные иконки красивые в TreeView.
    А вот с иконками формами уже не сочетаются. Ну это я как всегда пытаюсь убить дизайнера в себе недобитого. 😅

    Ну я как вижу через отладчик, он проходит по всем контроллам по пути TreeView и ищет форму Выбор каналов.
    Ферма — 0
    Куры — 1
    Устройство — 2
    Программа — 3
    Входы — 4
    + контролы что есть на объектах.

    Как я понимаю ситуацию — нужно выбрать Node. По ней получить Тип формы — Каналы.
    Открыть форму Выбор каналов.

    11 раз форма открывается, только когда в коде for или foreah, а не switch. 🙂

    #34952
    manjey73
    Участник

    Вообще ощущение, что формы не закрываются, когда мы закрываем TabPage

    Я уже в нет находил инфу по данному поводу, но решения нет.
    И все открытые формы честно исполняют свой код при нажатии кнопки в главном окне.
    Такая вот шляпа. Как это решить не знаю.

    з.ы. Я не дизайнер ни разу, терпите. 😀

    #34953
    manjey73
    Участник

    Нет, он не проходит по всем, он проходит только по открытым некогда формам. Или даже так, все открытые формы запускают код Выбора каналов. Так как на самом деле они не закрылись, с закрытием страниц.
    Сколько раз хаотично я выберу вкладки, даже из правильных. Между ними буду переключаться, столько раз и выполнится вызов окна Выбора.

    #34954
    JurasskPark
    Участник

    Я не программист, но посмотреть могу. Почту знаете. )
    Всё равно сейчас сижу и тренд клиент обновляю.

    #34955
    manjey73
    Участник

    Судя по Application.OpenForms формы таки закрываются, но при этом если поставить точку останова на делегат контроля кнопки, срабатывает столько раз, сколько я делал выбор нод.

    Код делегата в дочерней форме, отслеживающей нажатие кнопки в главной.

                frmParentGloabal.tbSaveAs.Click += delegate
                {
                    if (frmParentGloabal.ConfigDataset != null)
                    {
                        var inp = dgvAttribute.Rows.Count;
                        frmParentGloabal.rtb_Log.Text += $"Count DGV {inp.ToString()}" + Environment.NewLine;
    
                        string num = "";
                            num = dgvAttribute.Rows[rowIndex].Cells["Value"].Value.ToString();
                            int initCnl = 0;
                            bool isNum = int.TryParse(num, out initCnl);
    
                            FrmCnlSelect frmCnlSelect = new FrmCnlSelect(frmParentGloabal.ConfigDataset)
                            {
                                MultiSelect = false,
                                SelectedCnlNum = initCnl
                            };
                            if (frmCnlSelect.ShowDialog() == DialogResult.OK)
                            {
    //                          dgvAttribute.Rows[3].Cells["Value"].Value = frmCnlSelect.SelectedCnlNum.ToString();
                            }
                        }
                    }
                    else
                    {
                        frmParentGloabal.rtb_Log.Text += $"Нет данных" + Environment.NewLine;
                    }
                };

    Несколько упрости, тут еще проверки ячейки есть..

    • Ответ изменён 1 год, 2 месяца назад пользователем manjey73.
    #34957
    JurasskPark
    Участник

    += delegate уберите, и попробуйте вызвать просто public function.

    #34960
    manjey73
    Участник

    Каким образом?

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

    Я пробовал и передавать кнопку при создании кнопки, а на форме использовать событие — эффект был тем же самым, формы по ходу закрываются, а кнопки кто-то продолжает отслеживать. Если правильно понял, то в недрах событий все те же делегаты.
    То есть оба пути приводят к одинаковому результату.

    Собственная кнопка формы работает корректно так же через событие.

    з.ы. надо наверное будет запилить тестовый модуль с этой бякой, сейчас особо руки не доходят.

Просмотр 15 сообщений - с 31 по 45 (из 53 всего)
  • Для ответа в этой теме необходимо авторизоваться.