0
내가추가/
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;
}
이 컨트롤은 다른 컨트롤에 중첩되어이 기능이 다른 클래스 C#의 윈폼을 사용하여 Form 클래스에서 컨트롤 개체를 제거합니다. 함수를 public으로 만들고 해당 클래스의 인스턴스를 만들어이 함수를 호출하면 코드를 실행하면이 줄에 오류가 발생합니다. Parent.Controls.Remove(this);
부모 개체가 null (또한 ParentForm)이기 때문에이 줄을 표시합니다. 이 컨트롤에 대한 부모 컨트롤을 갖기 위해 인스턴스 또는 다른 방법이 있습니까? 이벤트 단추를 사용하여 함수 (다른 클래스 (폼)가 아닌 내부 이벤트)를 호출하면 위의 코드가 제대로 작동합니다.