2012-05-11 93 views
0

我正在尝试创建多个表单实例。例如,我有一个form1和form2 并且form1中有一个ListView。创建多个表单实例

当点击ListView中的项目时,它将创建一个form2的新实例。

Form2 listview1.FocusedItem.SubItems[0].Text = new Form2(); 
listview1.FocusedItem.SubItems[0].Text.Show(); 

但是C#不允许我这样做,任何想法? (是的..我得到的错误:d)

好了,这个想法..让说,我想有窗口2的3个实例,

Form2 f21 = new Form2();

Form2 f22 = new Form2();

Form2 f23 = new Form2();

现在我会有3个form2,但如果我不知道我可能创建多少个表单,该怎么办? (动态地创建listview中的项目的形式基地)

其实这可能不是正确的方式来做到这一点...任何解决方案是赞赏。

+6

我甚至不知道从哪一个开始这个...你想做什么? – MilkyWayJoe

+4

'.Text'不是表单,它是一个字符串。 – LarsTech

+0

我认为你的问题比你的代码行更深,它是你对面向对象,属性类型和实例的理解。您可以复制以下人员的粘贴建议,但如果您不理解,则无用。您可能需要先运行一些教程。 – Roast

回答

3

listview1.FocusedItem.SubItems[0].Textstring属性,您不能分配System.Windows.Forms.Formstring

不是很清楚你要什么在这里实现,但是,可能这样的

new Form2().Show(); 

关于该项目的点击就足够你。

如果这不是你要求的,请澄清。

编辑

要管理的形式任意数量,你可以这样做:

//somewhere in the code a global collection 
var formsCollection = new List<Form>(); 

和点击项目:

formsCollection.Add(new Form2()); 
formsCollection[formsCollection.Count-1].Show(); 

另外要mantion它那可能是你需要在集合中找到一些特定的表单(为了这样我的理由)。您可以为Form2指定一些特殊属性,这是一个唯一的标识符,以便在请求后能够找到它。

+0

我编辑了我的问题。 :D,我知道我们不能分配System.Windows.Forms.Form字符串,但如果我希望表单是动态的? – user1046088

+0

嗨,这应该是我寻找的。也许我用错误的“关键词”谷歌:无论如何,D,感谢和感谢您的帮助。祝你今天愉快。 – user1046088

+0

@ user1046088:不客气。 – Tigran

3

我想通过不被允许这样做意味着你正在得到某种错误。这是一个语法错误?这将是我的猜测。

另外,为什么你要为每次新​​的点击创建一个新的表单?我建议重新使用现有的对象或适当的销毁/取消旧的对象。

我相信,有一个与线有问题

Form2 listview1.FocusedItem.SubItems[0].Text = new Form2(); 

您不能分配新的形式,以一个文本属性,此外,在这种说法你都应该为变量提供一个名字,不其他地方的参考。 您的意思是类似于:

Form2 f2 = new Form2(listview1.FocusedItem.SubItems[0].Text); 
f2.Show(); 
+0

感谢您的回答,我确实使用谷歌搜索,并找到一些类似于您的答案。但我需要将不同的数据发布到每个表单以进行监控。 – user1046088