Има ли еквивалент на Items.AddObject в VS.NET
2 отговора
108 прегледа
Има ли еквивалент на Items.AddObject в VS.NET
От съвсем скоро пробвам разни хватки с VS 2005, та ми трябва един често използван фийчър от Delphi-то, обаче не знам как да го направя:
Идеята е да си добавям във визуални контроли мои структури (обекти). Както на листбокса в Делфи мога да кажа ListBox1.Items.AddObject(MyObject.MakeIndexString, MyObject), така би трябвало да мога и в VS. Обаче в тия му контроли само CollectionItem има, който си настоява в него да слагам само ListItem.
Това ми трябва, за да мога да асоциирам индекс от контролата с обект, без да се налага да поддържам допълнителен списък (в VS, доколкото разбрах, такава работа ще ми свърши ArrayList) от моите обекти.
Всякакви предложения са уелкъм :-)
PS: Това се опитвам да го постна за трети път и все се чупи връзката с MySQL-а на дир-а. Ако се получат трите теми наведнъж, голем срам :-((
Идеята е да си добавям във визуални контроли мои структури (обекти). Както на листбокса в Делфи мога да кажа ListBox1.Items.AddObject(MyObject.MakeIndexString, MyObject), така би трябвало да мога и в VS. Обаче в тия му контроли само CollectionItem има, който си настоява в него да слагам само ListItem.
Това ми трябва, за да мога да асоциирам индекс от контролата с обект, без да се налага да поддържам допълнителен списък (в VS, доколкото разбрах, такава работа ще ми свърши ArrayList) от моите обекти.
Всякакви предложения са уелкъм :-)
PS: Това се опитвам да го постна за трети път и все се чупи връзката с MySQL-а на дир-а. Ако се получат трите теми наведнъж, голем срам :-((
Re: Има ли еквивалент на Items.AddObject в VS.NET
Не виждам какъв е проблема ..
Добавя се обект, който после можеш да кастнеш към MyClass, и в бокса се изписва това, което връща ToString() ... или нещо не разбирам въпроса?
-------------
Special killer double trouble triple extra nicotine monster!
public class MyClass {
int x;
int y;
public override string ToString() {
return "x and y are dummy";
}
}
и после
private void button1_Click(object sender, System.EventArgs e) {
lb.Items.Add(new MyClass());
}
Добавя се обект, който после можеш да кастнеш към MyClass, и в бокса се изписва това, което връща ToString() ... или нещо не разбирам въпроса?
-------------
Special killer double trouble triple extra nicotine monster!
Re: Има ли еквивалент на Items.AddObject в VS.NET
Начи zfree ти е казал как става, само че има оше един момент за контроли като Tree - там node-овете ти са TreeNode и съответно за да асоциираш собствен обект трябва да го пъхнеш в пропертито Tag на съответния TreeNode. Това е стандарт за всички контроли, в които не можеш да пъхаш произволен обект, а имаш аналог на TreeNode.
//adding the node
MyClass mci = new MyClass();
TreeNode node = new TreeNode("MyNode");
node.Tag = mci;
this.tree.Nodes.Add(node);
//on click
MyClass mci = this.tree.SelectedNode.Tag as MyClass;
Debug.Trace(mci.ToString());
Благородникът има само една дума и аз ви дадох своята
//adding the node
MyClass mci = new MyClass();
TreeNode node = new TreeNode("MyNode");
node.Tag = mci;
this.tree.Nodes.Add(node);
//on click
MyClass mci = this.tree.SelectedNode.Tag as MyClass;
Debug.Trace(mci.ToString());
Благородникът има само една дума и аз ви дадох своята
Редактирано от Desenchante на