我有这个功能
private void UndockControl()
{
if (Parent == null)
{
Control c = this.Parent;
}
if (m_floatingFrame == null)
{
m_floatingFrame = new FloatingFrameWindow();
m_floatingFrame.Owner = ParentForm;
}
if (Parent is TableLayoutPanel)
{
var parentPanel = (TableLayoutPanel)Parent;
var col = parentPanel.GetColumn(this);
var small = new ColumnStyle(SizeType.Absolute, 1);
parentPanel.ColumnStyles[col] = small;
}
Parent.Controls.Remove(this);
m_floatingFrame.Controls.Add(this);
ParentForm.FormClosing += ParentForm_FormClosing;
Dock = DockStyle.Fill;
m_floatingFrame.Show();
m_isDocked = false;
uiDockButton.ImageIndex = 0;
}
此控件嵌套在其他控件中。
如果我将函数设置为public并使该类的实例调用此函数,那么当我运行代码时,会在此行Parent.Controls.Remove(this);
中给出错误,因为Parent对象为null(也是ParentForm)。
有没有办法实例或某些东西,以便拥有此控件的父控件?
如果我使用事件按钮来调用函数(内部事件,而不是其他类(表单)),上面的代码工作正常。
答案 0 :(得分:0)
我做了一个小项目,以便找出嵌套在其他控件中并在窗体类外部调用的控件的行为。似乎如果从另一个类调用它,则父表单将为null。