Winforms 在visual c++; 我刚刚开始使用VisualStudioC++(2010),它是Windows窗体,但我无法用它来找出如何响应事件创建新的UI项目。我想做的是单击一个按钮,并有一个新行,显示两个文本框和按钮,一个按钮删除该行。如果我继续单击,将显示更多行,名为row0,row1 etcv。我看了这个页面,(),关于以编程方式添加控件,但是当我在click事件中添加一个新文本框时,该文本框仅在事件范围内创建(如预期的那样!),但是我希望能够在newRow click事件中创建该文本框,但可以访问该文本框并进行编辑。我想创建一个“row”类,具有row.text和row.deleteButton属性,并且在每次创建一行时,都会为按钮单击和文本编辑创建相应的事件

Winforms 在visual c++; 我刚刚开始使用VisualStudioC++(2010),它是Windows窗体,但我无法用它来找出如何响应事件创建新的UI项目。我想做的是单击一个按钮,并有一个新行,显示两个文本框和按钮,一个按钮删除该行。如果我继续单击,将显示更多行,名为row0,row1 etcv。我看了这个页面,(),关于以编程方式添加控件,但是当我在click事件中添加一个新文本框时,该文本框仅在事件范围内创建(如预期的那样!),但是我希望能够在newRow click事件中创建该文本框,但可以访问该文本框并进行编辑。我想创建一个“row”类,具有row.text和row.deleteButton属性,并且在每次创建一行时,都会为按钮单击和文本编辑创建相应的事件,winforms,visual-studio-2010,visual-c++,c++-cli,windows-forms-designer,Winforms,Visual Studio 2010,Visual C++,C++ Cli,Windows Forms Designer,有没有办法做到这一点,即可以创建一个通过传递所需名称来创建新对象的函数?实现这一点的诀窍是,您需要在事件处理程序之外进行声明,以跟踪新添加的UI组件。在您提供的链接中,添加的文本框在事件函数中是局部作用域,当事件完成时,它将从堆(即内存)中删除 因此,一种解决方案是将UI组件列表添加到表单中,然后将事件添加到该组件列表或从中移除。要使此解决方案起作用,您可能需要阅读对象列表(或可能的字典)以及如何处理这些对象 很抱歉给出了一个相当笼统的答案,但问题也非常广泛……:)

有没有办法做到这一点,即可以创建一个通过传递所需名称来创建新对象的函数?

实现这一点的诀窍是,您需要在事件处理程序之外进行声明,以跟踪新添加的UI组件。在您提供的链接中,添加的文本框在事件函数中是局部作用域,当事件完成时,它将从堆(即内存)中删除

因此,一种解决方案是将UI组件列表添加到表单中,然后将事件添加到该组件列表或从中移除。要使此解决方案起作用,您可能需要阅读对象列表(或可能的字典)以及如何处理这些对象

很抱歉给出了一个相当笼统的答案,但问题也非常广泛……:)