何时销毁 Windows 窗体数据源
When Is a Windows Forms Data Source Destructed?
我有一个实现System::ComponentModel::INotifyPropertyChanged
并用作数据源的类。 称之为SourceThing
.假设它有一个名为 Data
的String
属性。 它绑定到 Windows 窗体控件,如下所示:
SourceThing ^ mySourceThing = gcnew SourceThing();
myTextbox->DataBindings->Add("Text", mySourceThing, "Data");
绑定按预期工作。 但是,即使释放了包含文本框的窗口(即,调用窗口的析构函数,但永远不会销毁SourceThing
实例),也不会调用SourceThing
析构函数。 我可以使析构函数在SourceThing
上运行的唯一方法是使用句柄上的delete
运算符。 我宁愿不必保留所有数据源的句柄,因为似乎应该在销毁表单时自动销毁它们。
应用程序将根据用户操作多次创建和处置此特定表单,并且有很多SourceThing
实例浮动并不理想。 为什么在销毁窗体时不调用 SourceThing
析构函数?
我
不确定这一点,但我想编译器在C++ CLI 类中定义析构函数时会创建一个Dispose()
方法。
如果是这种情况,您应该在表单关闭时调用mySourceThing->Dispose()
。
希望对你有帮助
相关文章:
- 如何更改窗体上所有控件的标题?[C++生成器]
- 使用 SQLConfig数据源创建 SQL Server DSN 失败:关键字-值对无效
- 在这种情况下,如何防止C++输出/控制台窗体关闭
- 使用非托管导出显示和关闭 C# 窗体 C++
- 如何在Windows窗体应用程序中打开txt文件并将行导入文本框
- 将变量从主窗口传递到另一个qt c++窗体
- 使每个按钮的QT设计器窗体不同
- SQL Server-未找到数据源名称,也未指定默认驱动程序
- VCL 应用程序何时获取其应用程序>主窗体>句柄?
- 我在哪里编写在退出 C++ 窗口窗体应用程序之前执行的代码部分
- 对话框窗体快速闪烁,但之后未正确绘制
- 如何将C++ dll 在 C# 窗口窗体应用程序下的工作线程中运行
- C++ |如何从组合框中删除数据源
- 我可以在 vb.net Windows 窗体应用程序中使用 COLECONTROLModule 吗?
- C++ 如何将用户控件添加到窗体,以便我可以在面板之间转换
- C++ /WinRT - 文本块,如何动态附加并将其位置 (x, y) 设置为 XAML 窗体
- std::线程在 Windows 窗体中不可用
- 如何在函数中暂停程序,直到用户在窗体上执行某些操作
- 无法在 Visual Studio 2015 中创建 Windows 窗体
- 何时销毁 Windows 窗体数据源