Стартовая страница › Форумы › Разработка и интеграция › Xml в TreeView со связью данных
- В этой теме 52 ответа, 4 участника, последнее обновление 1 год, 2 месяца назад сделано
JurasskPark.
-
АвторСообщения
-
18.06.2024 в 12:09 #33086
manjey73УчастникОно как бы и работает, можно и забить, но по мне это как-то криво, каждую букву все это делать.
19.06.2024 в 14:43 #33105
MikhailМодераторПопробуйте событие AfterLabelEdit
19.06.2024 в 14:54 #33107
manjey73УчастникИнтересно, как это поможет?
Я же не сам TreeView редактирую, а текстовое поле, которое открывается на TabControl, в которое в свою очередь вызывается другая форма.
А еще у меня кроме текстового поля есть DataGridView, даже два уже и RichTextBox 🙂Это наверное скорее при редактировании имен веток самого TreeView будет срабатывать.
20.06.2024 в 12:03 #33124
MikhailМодераторДа, для TextBox это не поможет.
05.10.2024 в 16:57 #34947
manjey73УчастникПродолжу тут, чтобы на создавать новых тем.
Есть главная форма с TreeView и дочерние формы, которые открываются внутри главной.
Дочерние вызываются как new Form в контроле Таб.
Как внутри дочерних форм подписаться на нажатие кнопки находящейся на главной форме?Вариант передачи кнопки внутрь дочерних форм не подходит, там такое ощущение, что создаётся стек. Нужно именно из дочки выполнить подписку.
05.10.2024 в 23:08 #34948
JurasskParkУчастникpublic FrmConfig frmParentGloabal; // global general form
Отсюда, вы видите все публичные свойства, функции главной формы.
Иногда можно даже не подписываться, а просто вызывать публичный void.06.10.2024 в 07:55 #34949
manjey73УчастникНа счёт стека был направ, ноги растут из Страниц TabControl.
tabControl.Pages.Clear() не удаляет страницы фактически. Обломс какой-то, как бы должен.
06.10.2024 в 08:41 #34950
manjey73Участник
Как-то связано с количеством переходов по TreeView, то есть сколько вкладок фактически открывалось как дочерние формы.
@JurasskPark на вашем оригинальном варианте еще не пробовал, у себя упростил до одной дочерней формы по сути.И вот где тут загвоздка непонятно абсолютно…
06.10.2024 в 12:50 #34951
JurasskParkУчастникПетуха мне в трансформаторную будку!
Курочка и остальные иконки красивые в TreeView.
А вот с иконками формами уже не сочетаются. Ну это я как всегда пытаюсь убить дизайнера в себе недобитого. 😅Ну я как вижу через отладчик, он проходит по всем контроллам по пути TreeView и ищет форму Выбор каналов.
Ферма — 0
Куры — 1
Устройство — 2
Программа — 3
Входы — 4
+ контролы что есть на объектах.Как я понимаю ситуацию — нужно выбрать Node. По ней получить Тип формы — Каналы.
Открыть форму Выбор каналов.11 раз форма открывается, только когда в коде for или foreah, а не switch. 🙂
06.10.2024 в 13:53 #34952
manjey73УчастникВообще ощущение, что формы не закрываются, когда мы закрываем TabPage
Я уже в нет находил инфу по данному поводу, но решения нет.
И все открытые формы честно исполняют свой код при нажатии кнопки в главном окне.
Такая вот шляпа. Как это решить не знаю.з.ы. Я не дизайнер ни разу, терпите. 😀
06.10.2024 в 13:56 #34953
manjey73УчастникНет, он не проходит по всем, он проходит только по открытым некогда формам. Или даже так, все открытые формы запускают код Выбора каналов. Так как на самом деле они не закрылись, с закрытием страниц.
Сколько раз хаотично я выберу вкладки, даже из правильных. Между ними буду переключаться, столько раз и выполнится вызов окна Выбора.06.10.2024 в 14:47 #34954
JurasskParkУчастникЯ не программист, но посмотреть могу. Почту знаете. )
Всё равно сейчас сижу и тренд клиент обновляю.06.10.2024 в 23:22 #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.
07.10.2024 в 07:07 #34957
JurasskParkУчастник+= delegate уберите, и попробуйте вызвать просто public function.
07.10.2024 в 09:56 #34960
manjey73УчастникКаким образом?
В смысле каким образом загруженная форма сможет отслеживать нажатие кнопки в таком случае.
Я пробовал и передавать кнопку при создании кнопки, а на форме использовать событие — эффект был тем же самым, формы по ходу закрываются, а кнопки кто-то продолжает отслеживать. Если правильно понял, то в недрах событий все те же делегаты.
То есть оба пути приводят к одинаковому результату.Собственная кнопка формы работает корректно так же через событие.
з.ы. надо наверное будет запилить тестовый модуль с этой бякой, сейчас особо руки не доходят.
-
Ответ изменён 1 год, 2 месяца назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
