【问题标题】:Creating new UI controls programmatically in visual c++在 Visual C++ 中以编程方式创建新的 UI 控件
【发布时间】:2015-03-01 01:32:52
【问题描述】:

我刚刚开始将 Visual Studio C++ (2010) 与 Windows 窗体一起使用,但我一生都无法了解如何创建新的 UI 项以响应事件。我想要发生的是单击一个按钮,并有一个新行,出现几个文本框和按钮,如果我继续单击,一个按钮可以删除该行,将出现更多行,命名为 row0、row1 etcv。我查看了此页面 (http://msdn.microsoft.com/en-us/library/aa984255(v=vs.71).aspx),关于以编程方式添加控件,但是当我在单击事件中添加新文本框时,文本框仅在事件范围内创建(如预期的那样!),但我希望能够在 newRow 点击事件中创建它,但访问它并且 .我想制作一个带有 row.text 和 row.deleteButton 属性的“行”类,并且在每次创建一行时,将为按钮单击和文本编辑创建相应的事件。

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

【问题讨论】:

    标签: winforms visual-studio-2010 visual-c++ c++-cli windows-forms-designer


    【解决方案1】:

    实现这一点的诀窍是,您需要在事件处理程序之外进行声明,以跟踪新添加的 UI 组件。在您给出的链接中,添加的 TextBox 在事件函数内是本地范围的,当事件完成时,它将从堆(即内存)中删除。

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

    很抱歉,答案很笼统,但问题也很广泛... :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多