Создание события для TreeView.

Выбираем на основной форме копанет treeView1, переходим в окно событий и создаем событие «NodeMouseClick». Переходим к редактированию кода данного события. Необходимо сделать так чтобы при выделение subItem у нас открывалась дочерняя форма, в заголовке данной формы прописывался текст выделенного документа. Для этого в редактировании события пропишем следующий код.

private bool CreateWorkForm(string sNameForm) { WorkForm newf; newf = new WorkForm(); newf.Text = sNameForm; newf.MdiParent = this; newf.Show(); return true; } private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { bool bFormOpen = (e.Node.Parent != null) ? CreateWorkForm(e.Node.Text) : false;   }

После того как будет прописан данный код, запустим нашу программу, выбирая элементы в дереве, у нас будут создаваться рабочие формы. Однако при повторном выборе документа создается еще одно окно, после добавления следующего кода мы избавимся от этой проблемы.

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { for (int i = this.MdiChildren.Length - 1; i >= 0; i--) { if (MdiChildren[i].Text == e.Node.Text) { MdiChildren[i].Activate(); return; } }   bool bFormOpen = (e.Node.Parent != null) ? CreateWorkForm(e.Node.Text) : false; }

Запустите программу, что получилось?

Создание классов для документов и справочников.

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

Создадим класс для первого справочника, для этого добавим в проект файл реализации и назовем его Spr1.cs. Пропишем там следующий код.

using System; using System.Collections.Generic; using System.Linq; using System.Text;   namespace ASU_Sklad { class TSpr1 { public TSpr1() { // } } }

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

Создание события для TreeView. - student2.ru рис 2.

После добавления файла в окне Solution Explorer мы видим следующее. рис 3.

Создание события для TreeView. - student2.ru рис. 3.

Содержимое созданного файла выглядит следующим образом.

using System; using System.Collections.Generic; using System.Linq; using System.Text;   namespace ASU_Sklad { public interface IDocuments {   } }

Наследуем наш класс от созданного интерфейса. Для этого перейдем в редактирование файла Spr1.cs и изменим описание класса.

using System; using System.Collections.Generic; using System.Linq; using System.Text;   namespace ASU_Sklad { class TSpr1 : IDocuments { public TSpr1() { // } } }

Теперь наш созданный класс наследуется от интерфейса.

Для следующих операций необходимо переименовать имена subItem нашего TreeView, как указано в таблице, таким образом, имена наших классов, создаваемых для документов будут фактически идентичны именам subItem, единственно, что остается достать имя класса из этих переменных.



Name Text
Spr_Spr1_Node Справочник 1
Spr_Spr2_Node Справочник 2
InDoc_InDoc1_Node Входной документ 1
InDoc_InDoc2_Node Входной документ 2
OutDoc_OutDoc1_Node Выходной документ 1

Наши рекомендации