//, Logger
        //, CharakterStartControl Logger
        public CharakterAttributeControl(CharakterErstellungsDaten Daten)
            : base(Daten)
        {
            CreateLabel("Jedes Attribut muss zwischen " + Daten.MinimalerWertAttribut + " und " + Daten.MaximalerWertAttribut + " Punkte erhalten."
                + "\r\nIn der Summe müssen " + Daten.SummeAttribute + " Punkte vergeben werden.");

            this.Menge = Daten.SkillbareAttribute;

            AttributFelder = new ControlPaar[Menge.Length];
            AttributFelder.CountMap(i => CreatePaar(Menge[i].SchreibName, false, null));
            Summe = CreateLabel("Gesamtsumme: 0");

            Liste.Setup();
            Validate(null, null);
        }
        private void CreatePaar(Fertigkeit Fertigkeit)
        {
            Gelernt++;

            Button A = new Button();
            A.AutoSize = true;
            A.Text = "Entfernen";

            Label B = new Label();
            B.AutoSize = true;
            B.Text = Fertigkeit.SchreibName;
            B.Font = new System.Drawing.Font("Calibri", 13);

            ControlPaar cp = new ControlPaar(A, B);
            Liste.Add(cp);
            Fertigkeiten.Add(Fertigkeit);

            A.Click += (sender, e) =>
            {
                Gelernt--;
                Liste.Remove(cp);
                Fertigkeiten.Remove(Fertigkeit);
                UpdateInfo();
            };
        }
        protected ControlPaar CreatePaar(string text, bool MultiLine, EventHandler TextChanged)
        {
            Label lab = new Label();
            lab.Text = text;
            lab.AutoSize = true;

            TextBox b = new TextBox();
            b.TextChanged += new EventHandler(Validate);
            if (TextChanged != null)
                b.TextChanged += TextChanged;
            b.Multiline = MultiLine;

            ControlPaar ltp = new ControlPaar(lab, b);
            this.Liste.Add(ltp);
            return ltp;
        }
            protected virtual void CreatePaar(Gegenstand Gegenstand)
            {
                Button A = new Button();
                A.AutoSize = true;
                A.Text = "Entfernen";

                Label B = new Label();
                B.AutoSize = true;
                B.Text = Gegenstand.SchreibName;
                B.Font = new System.Drawing.Font("Calibri", 13);

                ControlPaar cp = new ControlPaar(A, B);
                Liste.Add(cp);
                this.Gegenstande.Add(Gegenstand);

                A.Click += (sender, e) =>
                {
                    Liste.Remove(cp);
                    this.Gegenstande.Remove(Gegenstand);
                    UpdateInfo();
                };
            }
        protected ControlPaar CreateImagePaar(string text, EventHandler NewPic)
        {
            PictureBox pb = new PictureBox();
            pb.Size = new Size(150, 200);
            pb.SizeMode = PictureBoxSizeMode.StretchImage;

            Button b = new Button();
            b.Text = text;
            b.AutoSize = true;
            b.Click += (sender, e) =>
            {
                CancelEventHandler eve = new CancelEventHandler((sender2, e2) =>
                    {
                        try
                        {
                            pb.ImageLocation = ImageDialog.FileName;
                            NewPic(b, new EventArgs());
                        }
                        catch (Exception)
                        {
                        }
                    });
                ImageDialog.FileOk += eve;
                ImageDialog.ShowDialog();
                ImageDialog.FileOk -= eve;
            };

            ControlPaar ltp = new ControlPaar(b, pb);
            this.Liste.Add(ltp);
            return ltp;
        }
        protected ControlPaar CreateColorPaar(string text)
        {
            Label lab = new Label();
            lab.Text = text;
            lab.AutoSize = true;

            ColorButton cb = new ColorButton();
            cb.Size = new Size(60, 30);

            ControlPaar ltp = new ControlPaar(lab, cb);
            this.Liste.Add(ltp);
            return ltp;
        }
        protected ControlPaar CreateButtonPaar(string text, string buttonText, EventHandler Click)
        {
            Label lab = new Label();
            lab.Text = text;
            lab.AutoSize = true;

            Button b = new Button();
            b.Click += Click;
            b.Click += Validate;
            b.Text = buttonText;
            b.AutoSize = true;

            ControlPaar ltp = new ControlPaar(lab, b);
            this.Liste.Add(ltp);
            return ltp;
        }
        private void CreatePaar(int i)
        {
            PreSection<Talent> tps = Universe.GetTalente(Tags[i]);
            TalentForme[i] = new ElementAuswahlForm<Talent>(tps);

            Label lb = new Label();
            lb.Text = tps.Schreibname;
            //lb.AutoSize = true;
            lb.Font = new System.Drawing.Font("Calibri", 12);
            lb.Size = new System.Drawing.Size(200, 30);

            Button b = new Button();
            b.Text = "Nichts ausgewählt";
            //b.AutoSize = true;
            b.Font = new System.Drawing.Font("Calibri", 12);
            b.Size = new System.Drawing.Size(200, 30);
            b.Click += (s, e) =>
            {
                TalentForme[i].ShowDialog();
                if (TalentForme[i].MyStatus == ElementAuswahlForm<Talent>.Status.OK)
                {
                    SetErgebnis(i, TalentForme[i].Ergebnis);
                    CTC.UpdateZustande();
                }
            };
            Paare[i] = new ControlPaar(lb, b);
            List.Add(Paare[i]);
        }
        public void Feed(SuperCharakter Charakter)
        {
            if (!Fresh)
                Controls.Remove(List);

            Tags = Charakter.GetTalentTags(Stufe);
            int n = Tags.Length;
            TalentForme = new ElementAuswahlForm<Talent>[n];
            Ergebnisse = new Talent[n];
            Paare = new ControlPaar[n];

            List = new ControlList();
            List.Align = 0.5f;
            for (int i = 0; i < n; i++)
            {
                CreatePaar(i);
                if (Charakter.Talente.Talente[Stufe - 1] != null && Charakter.Talente.Talente[Stufe - 1].Length > i)
                    SetErgebnis(i, Charakter.Talente.Talente[Stufe - 1][i]);
            }
            List.Setup();

            Controls.Add(List);
            this.Size = List.Size;
            this.Fresh = false;
        }