Top-level control cannot be added to a control c năm 2024

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Control.ControlCollection.Add(Control) Method

  • Reference

Definition

Adds the specified control to the control collection.

public:
 virtual void Add(System::Windows::Forms::Control ^ value);
public virtual void Add (System.Windows.Forms.Control value);
public virtual void Add (System.Windows.Forms.Control? value);
abstract member Add : System.Windows.Forms.Control -> unit
override this.Add : System.Windows.Forms.Control -> unit
Public Overridable Sub Add (value As Control)

Parameters

Exceptions

The specified control is a top-level control, or a circular control reference would result if this control were added to the control collection.

The object assigned to the value parameter is not a Control.

Examples

The following code example adds a Control to the Control.ControlCollection of the derived class Panel. The example requires that you have created a Panel control and a Button control on a Form. When the button is clicked, a TextBox control is added to the panel's Control.ControlCollection.

   // Create a TextBox to add to the Panel.
private:
   TextBox^ textBox1;
   // Add controls to the Panel using the Add method.
   void addButton_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      textBox1 = gcnew TextBox;
      panel1->Controls->Add( textBox1 );
   }
// Create a TextBox to add to the Panel.
private TextBox textBox1 = new TextBox();
// Add controls to the Panel using the Add method.
private void addButton_Click(object sender, System.EventArgs e)
{
   panel1.Controls.Add(textBox1);
}
' Create a TextBox to add to the Panel.
Dim TextBox1 As TextBox = New TextBox()
' Add controls to the Panel using the Add method.
Private Sub AddButton_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles AddButton.Click
    Panel1.Controls.Add(TextBox1)
End Sub

Remarks

The Add method allows you to add Control objects to the end of the control collection.

You can also add new Control objects to the collection by using the AddRange method.

To remove a Control that you previously added, use the Remove, RemoveAt, or Clear methods.

Note

A Control can only be assigned to one Control.ControlCollection at a time. If the Control is already a child of another control it is removed from that control before it is added to another control.

Notes to Inheritors

When overriding in a derived class, be sure to call the base class's method to ensure that the control is added to the collection.

Applies to

See also

Collaborate with us on GitHub

The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.

trying to open a form in another form using C#. here is the code that fails:

private void btnPriceList2_Click(object sender, System.EventArgs e) { if(txtAuctionId.Text.Trim() != "") { PriceList pricelist = new PriceList(txtAuctionId.Text.Trim()); pricelist.Parent = this; pricelist.LoginId = this.LoginId; pricelist.ShowDialog(); } }

i have a similar function that works for another button, that is:

private void showAddNewLotScreen() {

if(txtAuctionId.Text.Trim()!="") { LotDetails lot = new LotDetails(null,txtAuctionId.Text.Trim()); lot.parent = this; lot.LoginId = this.LoginId; lot.ShowDialog(); }

}

the PriceList form is giving me the below error. any ideas???

An unhandled exception of type 'System.ArgumentException' occurred in system.windows.forms.dll

Additional information: Cannot add a top level control to a control.

What is the top level control?

The top-level control is defined as the parent control that is not parented by another Windows Forms control. Typically, this is the outermost Form that the control is contained in.nullControl.TopLevelControl Property (System.Windows.Forms)learn.microsoft.com › ... › System.Windows.Forms › Control › Propertiesnull

What is used to add a level control to a form?

A control is a component on a form used to display information or accept user input. The primary way a control is added to a form is through the Visual Studio Designer, but you can also manage the controls on a form at run time through code.nullAdd Controls to a Form - Windows Forms .NET | Microsoft Learnlearn.microsoft.com › en-us › dotnet › desktop › how-to-add-to-a-formnull