Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/14: Рейтинг темы: голосов - 14, средняя оценка - 4.64
45 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 213

TreeView: ошибка при клике на элемент

29.07.2013, 14:20. Показов 2787. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Длина входного массива больше числа столбцов в этой таблице
Среда Visual Studio 2010 Professional
TreeView, код события щелчка на кнопке,
На основе примера PersonalNotes.zip, скопированного на одном из форумов,
пытаюсь создать свой TreeView.

VB.NET
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
Private Sub tsmAdd_Cont_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbAddContact.Click
        Dim newnode As TreeNode
        Dim NC As New dlg_Kontact_my 
        If Me.tvwStructure.SelectedNode Is Nothing Then Exit Sub
        If NC.ShowDialog = Windows.Forms.DialogResult.OK Then
            If Me.tvwStructure.SelectedNode.Tag.Equals("Folder") Then
                Try
                    Me.Address_table.Rows.Add(NC.Cont_row) ' error_1: 
                    ' Длина входного массива больше числа столбцов в этой таблице.
 
                    newnode = Me.tvwStructure.SelectedNode.Nodes.Add(NC.Kontakt_name, NC.Kontakt_name, "Contact", "Contact open")
                    newnode.Tag = "Kontact"
                Catch ex As DataException
                    MsgBox("Не допускаются одинаковые имена контактов в одном узле!", MsgBoxStyle.Exclamation)
                End Try
            End If
        End If
 
    End Sub
 
Public Class dlg_Kontact_my
    Dim Kontact_data(11) As Object
    Dim Kontact_data_edit(11) As String
 
    Friend Property Cont_row() As Object()
        Get
            Cont_row = Kontact_data
        End Get
        Set(ByVal value As Object())
            Kontact_data = value
        End Set
    End Property
 
Private Sub dlg_Kontact_my_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.txtName.Text = Kontact_data(1)
        Me.txtFamily.Text = Kontact_data(2)
        Me.txtPsevdo.Text = Kontact_data(3)
        Me.mtxt_work.Text = Kontact_data(4)
        Me.mtxt_home.Text = Kontact_data(5)
        Me.mtxt_mobile.Text = Kontact_data(6)
        Me.mtxt_fax.Text = Kontact_data(7)
        Me.txtMails.Text = Kontact_data(8)
        Me.txtWorkAddress.Text = Kontact_data(9)
        Me.txtHomeAddress.Text = Kontact_data(10)
        Me.txtOther.Text = Kontact_data(11)
    End Sub
End Class
СПАСИБО!
Миниатюры
TreeView: ошибка при клике на элемент  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2013, 14:20
Ответы с готовыми решениями:

В чем ошибка? Скрыть элемент при клике за его пределами
<html> <head> <style type ="text/css"> #btn { position: absolute; } </style> </head> <body> <button...

Открытие формы при клике на узел treeView
Всем доброго дня, может кто знает как сделать так, чтобы по нажатию на узел элемента treeview открывалась новая форма? Среда Visual Studio...

Обработка событий при клике на узлы TreeView
Имеется компонент TreeView в виде: -Система --Угрозы --Уязвимости Необходимо, чтобы при нажатии на, к примеру, "угрозы"...

24
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
29.07.2013, 14:47
Цитата Сообщение от capetownn Посмотреть сообщение
скопированного на одном из форумов,
Туда и пиши
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
29.07.2013, 15:27
Цитата Сообщение от edward_freedom Посмотреть сообщение
Туда и пиши
Да мы и тут бываем
Ну что тут сказать... мой проект рабочий, это я знаю.
А вот
Цитата Сообщение от capetownn Посмотреть сообщение
На основе примера PersonalNotes.zip, скопированного на одном из форумов,
пытаюсь создать свой TreeView.
что там в процессе попыток менялось, я ж не знаю.
Могу предположить, что длина массива Cont_row (у него длина вроде 12, если верить скриншоту), больше, чем количество колонок-членов записи в TreeView

Добавлено через 5 минут
Поправка: Могу предположить, что длина массива Cont_row (у него длина вроде 12, если верить скриншоту), больше, чем количество столбцов (columns) в записи в AddressTable.

Добавлено через 13 минут
У меня в форме frmMain была процедура frmMain_Load.
Там был кусок кода
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
With Me.Address_table 
            .Columns.Clear() 
            .Columns.Add("Kontact_path") 
            .Columns.Add("Имя (+отчество)") 
            .Columns.Add("Фамилия") 
            .Columns.Add("Псевдоним") '+ 
            .Columns.Add("Рабочий телефон") '+ 
            .Columns.Add("Домашний телефон") '+ 
            .Columns.Add("Мобильный телефон") '+ 
            .Columns.Add("Факс") '+ 
            .Columns.Add("E-mais(s)") 
            .Columns.Add("Рабочий адрес") 
            .Columns.Add("Домашний адрес") 
            .Columns.Add("Прочее") 
            keys(0) = .Columns("Kontact_path") 
            .PrimaryKey = keys 
        End With
который создавал 12 столбцов в таблице Address_Table. Он у тебя остался? Или же смотри, что там у тебя, ничего ли не выкинул из него?
2
45 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 213
30.07.2013, 14:10  [ТС]
Юпатов Дмитрий,

который создавал 12 столбцов в таблице Address_Table. Он у тебя остался? Или же смотри, что там у тебя, ничего ли не выкинул из него?

Пример работает,
Я НЕ МОГ ВЫКИНУТЬ процедуру, функцию или свойство, Я ПРОСТО ИХ МОГ НЕ ДОБАВИТЬ,
сейчас посмотрю,
СПАСИБО.
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
30.07.2013, 15:19
Цитата Сообщение от capetownn Посмотреть сообщение
Я ПРОСТО ИХ МОГ НЕ ДОБАВИТЬ
А...
Ну суть в том, что таблица должна быть предварительно размечена столбцами. А уж потом можно в нее данные вносить.
0
45 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 213
31.07.2013, 14:52  [ТС]
Дмитрий, СПАСИБО,
согласно Вашей подсказке двигаюсь дальше.
Ошибки больше нет. При реализации Вашей процедуры

VB.NET
1
2
3
Friend Sub frm_Main_Load()
Чтобы первая строка работала
Me.wbInfo.DocumentText = My.Resources.Page_head & Me.Back_img & My.Resources.Page_head_2 & My.Resources.row_Bold_start & "Контакт не выбран" & My.Resources.bold_end & My.Resources.row_end & My.Resources.End_page
Необходимо заполнитьть показанную таблицу
Подскажите, пожалуйста, как она создана?
Я просто все 7 строк скопировал в свой одноимённый файл
"MyProject\ Resources.resx" используя "Добавить ресурс".
Возможно мастер эти строки создаёт?
СПАСИБО!
Миниатюры
TreeView: ошибка при клике на элемент  
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
31.07.2013, 15:22
Нет, мастер эти строки не создает. Все эти строки - это фактически строковые константы, их можно было и в форме объявить и потом точно также пользовать. Но, поскольку я их и не меняю никак, то решил прибрать аж в ресурсы.
Ну а как ты понимаешь, это все просто фрагменты гипертекстовой разметки для отображаемой в браузере странички
0
45 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 213
02.08.2013, 11:41  [ТС]
Дмитрий,
в cmsTVW (ContextMenuStrip) структуры видны (раскрывается) имена процедур,
созданные Вами. А у меня – не видны, но они присутствуют и работвют.
Как вы их добавляли?
Спасибо.
Миниатюры
TreeView: ошибка при клике на элемент  
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
02.08.2013, 13:04
Да ну как... как и любой пункт в меню (в т.ч. и контекстное) - в дизайнере форм студии
0
45 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 213
12.08.2013, 12:37  [ТС]
Дмитрий, извините, но не могу понять
Как появляется показанное меню сразу после выбора в конструкторе в области компонентов формы "cmsTVW"?
Вверху кнопки в ToolStrip с соответствующими надписями были раньше созданы и я их никак не связывал со строками меню.
2. Какова последовательность установки компонентов в область компонентов формы? Имеет ли значение что первым поставить на форму
Компнент ToolStrip или SplitContainer1? Как я понял, первым надо ставить ToolStrip, а потом SplitContainer1?
СПАСИБО!
Миниатюры
TreeView: ошибка при клике на элемент  
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
12.08.2013, 12:56
Цитата Сообщение от capetownn Посмотреть сообщение
были раньше созданы и я их никак не связывал со строками меню
а они никак и не связаны. Кнопки на панели приложения созданы отдельно, а cmsTvw - отдельно. И потом заполнено итемами с функционалом и внешним видом аналогично кнопкам на панели.
Цитата Сообщение от capetownn Посмотреть сообщение
Какова последовательность установки компонентов в область компонентов формы? Имеет ли значение что первым поставить на форму
Последовательность любая
SplitConteiner совсем из другой оперы - на нем в левой его панели лежит TreeView, а в правой панель с табами.
0
45 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 213
28.08.2013, 14:28  [ТС]
Дмитрий, здравствуйте.
Если есть чуточку времени, подскажите как заставить работать
В процедуре frm_Main_Load моей формы frm_Main_my_2_Load
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Try
            '+ MsgBox("2.Доходит ли сюда?" + vbCrLf +
            '"tested 26.08.2013 at 22:56") ' ДА, ДОХОДИТ!
            Me.Address_table.ReadXml(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "\AddressBook.xml")
            ' вышестоящий оператор не заканчивается аварийно, но нижеидущие процедуры
            ' НЕ ВЫПОЛНЯЮТСЯ! Как следствие – ПУСТЫЕ контролы ComboBox при открытии
' формы и вкладки  "ПОИСК"
            ' ФАЙЛ "AddressBook.XML" находится в папке "\Release\Data", его размер 6 кб.
            MsgBox("3.Доходит ли сюда?" + vbCrLf +
      "tested 26.08.2013 at 23:00") ' ДА, НЕ ДОХОДИТ СЮДА! ПРОБЛЕМА ПРИ ВЫПОЛНЕНИИ
            ' вышестоящего оператора - проблема с "\AddressBook.xml" . Этот файл
            ' я поместил в каталог \bin\Release\Data
            ' в примере после открытия проекта показаны УЗЛЫ, у меня ни одного УЗЛА НЕТ!
            ' ПОКА НЕ ПОЛУЧАЕТСЯ хотя бы 1 узел зафиксировать! В этом, наверное,
            ' и ПРИЧИНА НЕВЫПОЛНЕНИЯ?
СПАСИБО!
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
28.08.2013, 15:06
Цитата Сообщение от capetownn Посмотреть сообщение
My.Computer.FileSystem.SpecialDirectorie s.AllUsersApplicationData
Это примерно тут: C:\ProgramData\YDsoft\Адресная книга\1.2.2.0
а к папке \bin\Release\Data я обращения в коде не вижу.
У меня программа при старте открывает xml в папке, что я указал выше, если его нет или он пуст - узлов не будет.
При закрытии программы таблица Address_table (из нее заполняется тривью и прочее...) записывается в указанный файл. Если его не было - он создается, если был - перезаписывается.
1
45 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 213
16.09.2013, 14:05  [ТС]
Дмитрий, здравствуйте!
строка кода из процедуры
VB.NET
1
2
Friend Sub frm_Main_Load (. . . )
Me.Address_table.ReadXml(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "\AddressBook.xml")
Ищу на дисках C: , D: с помощью проводника файл AddressBook.xml
И НЕ НАХОДИТ. В ЧЁМ ПРИЧИНА? Добавил несколько контактов, файл должен бы измениться на текущую дату – 15.09.2013
Мой комп не подсоединён к интернету.
СПАСИБО.
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
16.09.2013, 14:52
не знаю. После закрытия программы файл должен перезаписаться или если его не было раньше - создаться новый.
Какая проблема переписать строку
VB.NET
1
My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "\AddressBook.xml"
на явно заданный путь, например "C:\AddressBook.xml" и точно знать, где лежит файл?. Ну а потом уже перед релизом убрать его куда надо?
1
45 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 213
18.09.2013, 16:23  [ТС]
Дмитрий, здравствуйте!
В процедуре закрытия приложения при указании в пути
"C:\", "D:\" выводится error:
Данный формат пути не поддерживается
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub frm_Main_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        '++ 17.09.2013 
        MsgBox("11.срабатывает при закрытии приложения")
        ' Me.Address_table.WriteXml(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "\AddressBook.xml", XmlWriteMode.WriteSchema)
 
        '+-1 Me.Address_table.WriteXml(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "D:\AddressBook.xml", XmlWriteMode.WriteSchema)
        ' Данный формат пути не поддерживается. 17.09.2013 22:25
 
        '+-2 Me.Address_table.WriteXml(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "C:\AddressBook.xml", XmlWriteMode.WriteSchema)
        ' Данный формат пути не поддерживается. 17.09.2013 22:30
 
        '+-3 Me.Address_table.WriteXml(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "C:\\AddressBook.xml", XmlWriteMode.WriteSchema)
        ' Данный формат пути не поддерживается.
 
        '+-4 Me.Address_table.WriteXml(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "D:\1_testVB_MET_18122012\PersonalNotes\PersonalNotes\PersonalNotes\bin\Release\Data\AddressBook.xml", XmlWriteMode.WriteSchema)
        ' Данный формат пути не поддерживается.
 
'+-5 Me.Address_table.WriteXml(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "D://AddressBook.xml", XmlWriteMode.WriteSchema)
        ' Данный формат пути не поддерживается.
 
        '+-6 Me.Address_table.WriteXml(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "D:/AddressBook.xml", XmlWriteMode.WriteSchema)
        ' Данный формат пути не поддерживается.
    End Sub
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
18.09.2013, 16:58
Я же писал:
Цитата Сообщение от Юпатов Дмитрий Посмотреть сообщение
Какая проблема переписать строку.......на явно заданный путь
Вот так:
VB.NET
1
Me.Address_table.WriteXml("C:\AddressBook.xml", XmlWriteMode.WriteSchema)
1
45 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 213
19.09.2013, 15:19  [ТС]
Дмитрий, здравствуйте!
вчерашний ответ правильный.
Но после добавления несколько контактов, после закрытия
приложения и его открытия не только введенные контакты ( строки ) отсутствуют.
Все пусто даже после добавления "D:\" в строке
в событии
VB.NET
1
2
Friend Sub frm_Main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Address_table.ReadXml(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData & "D:\AddressBook.xml")
событиие
VB.NET
1
2
Private Sub frm_Main_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
         Me.Address_table.WriteXml("D:\AddressBook.xml", XmlWriteMode.WriteSchema)
СПАСИБО!
Миниатюры
TreeView: ошибка при клике на элемент  
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
19.09.2013, 16:11
слов нет. одни выражения.
А в событии Load замену аналогично Closing не надо делать было?
Вот так:
VB.NET
1
2
Friend Sub frm_Main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Address_table.ReadXml("D:\AddressBook.xml")
Добавлено через 1 минуту
Судя по скриншоту, в файле AddressBook таки записались введенные данные (размер 2кб у файла). Можете открыть его при помощи блокнота или Internet Explorer и посмотреть, записались ли.
1
45 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 213
01.10.2013, 16:46  [ТС]
Дмитрий, здравствуйте!
Как в "Список контактов" вывести в одной строке "Юрій Андропов"? У меня не получается так как у Вас – нижний снимок. У меня как в ячейке переносится на 3 строки.
Предпринятые мной 2 действия к успеху не привели:
Действие_1: - Проверка значения свойства "Size" в 3-х контролах TabPage3, lvwKontacts и TabControl2.
Действие_2: - в контроле ListView "lvwKontacts" добавил 2 процедуры как и у Вас, lvwKontacts_Resize() and lvwKontacts_SelectedIndexChanged()
СПАСИБО!
Миниатюры
TreeView: ошибка при клике на элемент  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.10.2013, 16:46
Помогаю со студенческими работами здесь

Открытие форм при клике на элементы treeview
Добрый день. Есть приложение, на форме которого расположены элементы типа кнопок, таблиц, выпадающих списков и т.п. Логика приложения...

Странное поведение treeView (значения нода получаю при втором клике )
Всем привет! При создании нода, в его свойство tag записываю айдишку записи с таблицы далее на событие клик по treeView вот такой код: ...

При клике на узел TreeView, в Edit показать его абсолютный индекс
Доброго времени суток. Исправьте что бы заработало. procedure TForm1.TreeView1Click(Sender: TObject); begin Edit1.Text :=...

Открытие в Webbrowser определенного html-документа при клике на item Treeview
Всем доброго времени суток! Помогите пожалуйста справиться мне с такой задачей: Есть Treeview и webbrowser. В Treeview ссылки на статьи...

При клике на ветку TreeView в WebBrowser-е открывать соответствующий mht файл
Как сделать, что бы при клике в дереве на ветку "Выпуклый четырехугольник" в веббраузере открывался mht файл, при клике на ветку...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru