Ich habe ein Programm, ich möchte, dass jede Person ihre eigene Registerkarte hat, jede Registerkarte wäre identisch, jedoch möchte ich eine Registerkarte entfernen, wenn ich muss.Hinzufügen und Entfernen von Registerkarten zur Laufzeit in C#
private void addPerson(string name)
{
TabPage tmp = new TabPage();
ListView tmpList = new ListView();
Button tmpButton = new Button();
this.SuspendLayout();
this.tabFrame.SuspendLayout();
tmp.SuspendLayout();
tmpList.SuspendLayout();
tmpButton.SuspendLayout();
...
//build the controll itself
tmp.Controls.Add(tmpButton);
tmp.Controls.Add(tmpList);
tmp.Location = new System.Drawing.Point(4, 22);
tmp.Name = name.Replace(' ', '_');
tmp.Padding = new System.Windows.Forms.Padding(3);
tmp.Size = new System.Drawing.Size(284, 240);
tmp.TabIndex = 3;
tmp.Text = name;
tmp.UseVisualStyleBackColor = true;
//add it to frame
this.tabFrame.Controls.Add(tmp);
tmpButton.ResumeLayout(true);
tmpList.ResumeLayout(true);
tmp.ResumeLayout(true);
this.tabFrame.ResumeLayout(true);
this.ResumeLayout(true);
{
Name wird in der Form "Scott Chamberlain", so entferne ich die Räume und die Nutzung unterstreicht für das Namensfeld. Ich kann Tabs fein hinzufügen, zeigen sie richtig formatiert auf, aber wenn ich versuche, auf die Registerkarte mit dem Code zu entfernen:
private void removePerson(string name)
{
this.SuspendLayout();
this.tabFrame.SuspendLayout();
this.tabFrame.Controls.RemoveByKey(name.Replace(' ', '_'));
this.tabFrame.ResumeLayout(true);
this.ResumeLayout(true);
}
Die Registerkarte nicht aus meinem Programm nicht verschwindet. Was fehlt mir, um einen Tab zu entfernen?
Haben Sie während des removePerson-Aufrufs Ihren Code debuggt? Sehen Sie, welche Steuerelemente der TabFrame enthält und welche Eigenschaften sie haben. –