Теги на TreeNode
От: losnaca Россия  
Дата: 02.06.05 11:04
Оценка:
к каждому TreeNode прилагается тег который берет данные из таблицы базы данных и присваивает их TreeNode:

public class InfoTag
{
public ObjectTYPE ObjectTYPE; //тип объекта (перечисление)
public int L1; //первый ключ
public int L2; //второй ключ
public string NAME; //название префикса
public string Prefix; //префикс
public InfoTag(){}
}

так вот, в первом уровне TreeView мне нужны значения только ObjectTYPE, int L1, string NAME.
Во втором уровне нужно то же самое, но только вместо int L1 нужно int L2.
В процедуре, которая строит TreeView например, для первого уровня я делаю так:

foreach(DataRow L1_Row in AddPrefix.Tables["L1_ZONE"].Rows)
{
TreeNode Node_L1 = new TreeNode(L1_Row["NAME"].ToString());
Node_L1.Tag = new InfoTag(
ObjectTYPE.ZONE,
(int)L1_Row["L1"],
(string)L1_Row["NAME"]);

treeView1.Nodes.Add( Node_L1 );
}
компилятор мне выдает ошибку и говорит что нужно в Node_L1.Tag перечислить всех членов класса InfoTag.
Подскажите пожалуйста, синтаксис присвоения нулевых значений int L2, string Prefix в Node_L1.Tag.

заранее благодарна
I catch a water on a hook and burn down it on fire!
Re: Теги на TreeNode
От: Chardex Россия  
Дата: 02.06.05 11:15
Оценка:
Здравствуйте, losnaca, Вы писали:

L>к каждому TreeNode прилагается тег который берет данные из таблицы базы данных и присваивает их TreeNode:



L>public class InfoTag
L>    {
L>        public ObjectTYPE ObjectTYPE;    //тип объекта (перечисление)        
L>                public int L1;                //первый ключ
L>        public int L2;                  //второй ключ
L>        public string NAME;             //название префикса                    
L>                public string Prefix;           //префикс
L>            public InfoTag(){}
L>        }


L>так вот, в первом уровне TreeView мне нужны значения только ObjectTYPE, int L1, string NAME.

L>Во втором уровне нужно то же самое, но только вместо int L1 нужно int L2.
L>В процедуре, которая строит TreeView например, для первого уровня я делаю так:
Вообще-то я не очень понял. У вас в InfoTag пустой констркутор. Без параметров.


L>foreach(DataRow L1_Row in AddPrefix.Tables["L1_ZONE"].Rows)
L>    {
L>        TreeNode Node_L1 = new TreeNode(L1_Row["NAME"].ToString());
L>        Node_L1.Tag = new InfoTag( // а тут уже с параметрами!
L>        ObjectTYPE.ZONE,
L>        (int)L1_Row["L1"],
L>        (string)L1_Row["NAME"]);
                    
L>        treeView1.Nodes.Add( Node_L1 );
L>        }


L>компилятор мне выдает ошибку и говорит что нужно в Node_L1.Tag перечислить всех членов класса InfoTag.

L>Подскажите пожалуйста, синтаксис присвоения нулевых значений int L2, string Prefix в Node_L1.Tag.

L>заранее благодарна


И что мешает создать объект констрктором без параметров и инициализировать только нужные свойства? Или создать два конструктор для первого и второго уровня нод?!
Re[2]: Теги на TreeNode
От: losnaca Россия  
Дата: 02.06.05 11:29
Оценка:
Здравствуйте, Chardex,

Приношу извинения, вообще-то класс для тега целиком выглядит так:

public enum ObjectTYPE
{
ZONE = 1,
PREFIX = 2,
}
public class InfoTag
{
public ObjectTYPE ObjectType;
public int L1;
public int L2;
public string NAME;
public string Prefix;

public InfoTag(){}

public InfoTag( ObjectTYPE ObjectType,
int L1,
int L2,
string NAME,
string Prefix )
{
this.ObjectType = ObjectType;
this.L1 = L1;
this.L2 = L2;
this.NAME = NAME;
this.Prefix = Prefix;
}
}

когда я в теге определяю только те параметры, которые мне нужны он ругается что должен знать все параметры
I catch a water on a hook and burn down it on fire!
Re[3]: Теги на TreeNode
От: Chardex Россия  
Дата: 02.06.05 11:34
Оценка:
Здравствуйте, losnaca, Вы писали:

L>Здравствуйте, Chardex,


L>Приношу извинения, вообще-то класс для тега целиком выглядит так:


L>public enum ObjectTYPE

L>{
L> ZONE = 1,
L> PREFIX = 2,
L>}
L>public class InfoTag
L>{
L> public ObjectTYPE ObjectType;
L> public int L1;
L> public int L2;
L> public string NAME;
L> public string Prefix;

L> public InfoTag(){}


L> public InfoTag( ObjectTYPE ObjectType,

L> int L1,
L> int L2,
L> string NAME,
L> string Prefix )
L> {
L> this.ObjectType = ObjectType;
L> this.L1 = L1;
L> this.L2 = L2;
L> this.NAME = NAME;
L> this.Prefix = Prefix;
L> }
L> public InfoTag( ObjectTYPE ObjectType,
L> int L1,
L> int L2,
L> string NAME)
L> {
L> this.ObjectType = ObjectType;
L> this.L1 = L1;
L> this.L2 = L2;
L> this.NAME = NAME;
L> }

L>}

L>когда я в теге определяю только те параметры, которые мне нужны он ругается что должен знать все параметры

Девушка Я не пойму, почему нельзя еще один конструктор создать?
Re[3]: Теги на TreeNode
От: Chardex Россия  
Дата: 02.06.05 11:36
Оценка:
Здравствуйте, losnaca, Вы писали:

Извиняюсь, вот такой:
L>public enum ObjectTYPE
L>{
L>        ZONE    = 1,
L>        PREFIX    = 2,
L>}
L>public class InfoTag
L>{
L>    public ObjectTYPE    ObjectType;            
L>        public int        L1;
L>    public int        L2;            
L>    public string        NAME;    
L>    public string        Prefix;
            
L>        public InfoTag(){}
    
L>        public InfoTag( ObjectTYPE    ObjectType,
L>            int        L1,
L>            int        L2,
L>            string        NAME,
L>            string        Prefix  )
L>            {
L>                this.ObjectType        =    ObjectType;
L>                this.L1         =    L1;
L>                this.L2         =    L2; 
L>                this.NAME        =    NAME;
L>                this.Prefix        =    Prefix;
L>            }

[c#]
L>        public InfoTag( ObjectTYPE    ObjectType,
L>            int        L1,
L>            string        NAME )
L>            {
L>                this.ObjectType        =    ObjectType;
L>                this.L1         =    L1;
L>                this.NAME        =    NAME;
L
L>            }


L>}

[/c#]
Re[4]: Теги на TreeNode
От: losnaca Россия  
Дата: 02.06.05 11:38
Оценка:
Здравствуйте, Chardex,
спасибо за совет, этим я сейчас и займусь. не судите строго — я только начинающая программистка
I catch a water on a hook and burn down it on fire!
Re[4]: Теги на TreeNode
От: losnaca Россия  
Дата: 02.06.05 11:48
Оценка:
Здравствуйте, Chardex, Вы писали:


C>
L>>        public InfoTag( ObjectTYPE    ObjectType,
L>>            int        L1,
L>>            string        NAME )
L>>            {
L>>                this.ObjectType        =    ObjectType;
L>>                this.L1         =    L1;
L>>                this.NAME        =    NAME;
C>L
L>>            }
C>


L>>}

C>[/c#]

Супер! получилось! все гениальное просто... спасибо!
I catch a water on a hook and burn down it on fire!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.