我无法更改标签的z位置

时间:2017-04-11 12:29:01

标签: c# winforms calendar position

我正在尝试将我的标签“日期”放在我的其他标签上。但我真的很挣扎。我用bringToFront和sendToBack尝试过,但都没有用。我的目标是,日期标签位于前面。

代码:

            //Create Fill Panels
            createFillPanels();

            //Create Panel
            Panel test = new Panel();
            count++;
            //Fill Panel
            test.Name = "panel" + i;
            test.Width = 245;
            test.Height = 170;
            test.BackColor = Color.White;
            Label date = new Label();
            if(i >= 9)
            {
                int description = i + 1;
                date.Text = description.ToString();
            }
            else
            {
                int description = i + 1;
                date.Text = 0 + description.ToString();
            }

            //Create Label

            string day = date.Text;
            string year = DateTime.Now.Year.ToString();
            string month = tbMonat.Text;
            string stringDate = day + "." + month + "." + year;
            DateTime dt = Convert.ToDateTime(stringDate);

            if (dt.DayOfWeek == DayOfWeek.Sunday)
            {
                test.BackColor = Color.LightGray;
            }

            //Label frühschicht
            Label frühschicht = new Label();
            string frühschichtText = datenbank.panelBefüllen(tag, monat, jahr, "Frühschicht", null, null, null, null);

            if(frühschichtText != null)
            {
                frühschicht.Text = "Frühschicht: " + frühschichtText;
                frühschicht.ForeColor = Color.Black;
                frühschicht.Width = 215;                }
            frühschicht.Location = new System.Drawing.Point(frühschichtlocationX, frühschichtlocationY);

            date.Location = new System.Drawing.Point(datelocationX, datelocationY);
            foreach (Control c in this.Controls)

                if (frühschicht.Text.Contains("Offe"))
                {
                    frühschicht.BackColor = Color.LightPink;

                    fehlercount++;
                }
            frühschicht.SendToBack();
            test.Controls.Add(frühschicht);
            date.BringToFront();
            test.Controls.Add(date);
            flowLayoutPanel1.Controls.Add(test);
            test.Show();

            //Label spätschicht
            Label spätschicht = new Label();
            string spätschichtText = datenbank.panelBefüllen(tag, monat, jahr, "Spätschicht", null, null, null, null);

            if (spätschichtText != null)
            {
                spätschicht.Text = "Spätschicht: " + spätschichtText;
                spätschicht.ForeColor = Color.Black;
                spätschicht.Width = 215;
            }
            spätschicht.Location = new System.Drawing.Point(spätschichtlocationX, spätschichtlocationY);
            spätschicht.SendToBack();
            test.Controls.Add(spätschicht);
            date.Location = new System.Drawing.Point(datelocationX, datelocationY);
            date.BringToFront();
            foreach(Control c in this.Controls)

            if(spätschicht.Text.Contains("Offe"))
            {
                   spätschicht.BackColor = Color.LightPink;
                   fehlercount++;
            }

            test.Controls.Add(date);
            flowLayoutPanel1.Controls.Add(test);
            test.Show();

照片: How it looks like at the moment

1 个答案:

答案 0 :(得分:2)

Z-order始终相对于Parent设置时存在的所有控件设置。因此,您无法将其设置为您尚未添加的控件。在添加更多控制措施后,它也不会继续工作。

因此:在添加所有竞争控件后,必须将Z顺序设置为