在Visual Studio中创建新表单时,设计器在.Designer.cs文件中生成以下代码:
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
Run Code Online (Sandbox Code Playgroud)
components
变量的目的是什么?我的理论是,我应该将它用于IDisposable
我的表单拥有的任何类,我在Designer之外创建(因为Dispose
已经由Designer实现).
因此,例如,如果我的表单拥有一个字体,我可以通过添加它来确保它被处理components
:
public partial class Form1 : Form
{
Font coolFont;
public Form1()
{
InitializeComponent();
this.coolFont = new Font("Comic …
Run Code Online (Sandbox Code Playgroud) 我在ASP.NET 2.0 Web表单上有一个转发器控件.
据我了解,所有页面的数据绑定控件都会Page_Load
在Page_PreRender
事件和事件之间的某处触发绑定事件.
但是,我的转发器ItemDataBound
事件似乎发生在PreRender
事件发生后.
这是怎么回事?有什么方法可以在所有ItemDataBound
事件被解雇后访问页面控件?
更新:
Repeater使用ObjectDataSource
带有DataSourceID
转发器控件中的声明集的a.
在页面生命周期中根本不修改DataSource ID或对象.
我已经看过提到这个特定异常的各种问题(这个问题列出了很多,我访问过的).此外,我有与本文相同的一般性问题,但在不同的背景下,所以答案对我没有帮助.
上下文
我有一个派生自AxWindowsMediaPlayer
的类View
,由一个名为的类所拥有,该类Panel
位于a中Workspace
.我最近问了一个关于这种情况的问题,但是这个问题是针对这个问题的解决方法是否合适.该问题的背景与此相关:
.-----------------------. |Workspace | |.--------. .--------. | ||Panel1 | |Panel2 | | ||.-----. | |.-----. | | |||View1| | ||View2| | | ||'-----' | |'-----' | | |'--------' '--------' | '-----------------------'
当一个View
被释放时,一个被调用的方法Synchronize()
将被调用所有剩余的View
对象.对于View
那个包含的AxWindowsMediaPlayer
,它调用videoPlayer.Error.clearErrorQueue()
.
问题
当我Dispose()
在顶级(Workspace.Dispose()
)调用时,如果另一个View
被调配,然后导致Synchronize()
在剩余的View
对象上调用,则View
包含 …