gpt4 book ai didi

c# - 如何从我的日历中删除所有面板?

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:33 25 4
gpt4 key购买 nike

我现在正在使用 C# 编写日历。如果我调用我的日历,它会创建与当月有天数一样多的面板。但是,如果我想将当前月份增加一个,则当前月份的面板会停在那里。所以我必须在更改月份后立即删除所有面板。但是在这种情况下我该怎么做呢?

感谢您的帮助。

代码说明:首先,我调用 createPanel 方法,为当月创建面板。接下来,如果我单击 MonthAdd 方法,我想删除我创建的所有面板。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Globalization;



namespace Einteilungs_Plan
{

public partial class Kalender : Form
{
public DateTime TodayDate { get; set; }

int counting = 0;

public Kalender()
{
InitializeComponent();

//Kalenderwochen initialisieren
monat(counting);
createPanel(true);


}




public string monat(int adding)
{
string monat = DateTime.Now.AddMonths(adding).ToString("MMMM");
tbMonat.Text = monat;
return monat;
}

private void btnAddMonth_Click(object sender, EventArgs e)
{


counting++;



if(counting < 12)
{
monat(counting);
switch (counting)
{
case 0:
int number = 10;
break;

case 1:

break;

default:
break;

}
}
else
{
counting--;
}
}


private void btnRemoveMonth_Click(object sender, EventArgs e)
{


counting--;
if (counting > -1)
{
monat(counting);
}
else
{
counting++;
}
}

public void createPanel(bool remove)
{

var numDays = DateTime.DaysInMonth(DateTime.Today.Year, DateTime.Today.Month);

int locationX = 12;
int locationY = 74;

for (int i = 0; i <= numDays; i++)
{
//Create Panel
Panel test = new Panel();
//Fill Panel
test.Name = "panel" + i;
test.Width = 200;
test.Height = 100;
test.BackColor = Color.White;
test.Location = new System.Drawing.Point(locationX, locationY);
this.Controls.Add(test);
test.Show();
if(i == 6 || i == 13 || i == 20 || i == 28)
{
locationY += 106;
locationX = -194;
}
locationX += 206;

}
}



public void Kalender_Shown(object sender, EventArgs e)
{


}

private void Kalender_Load(object sender, EventArgs e)
{

}

private void btnNeuerEintrag_Click(object sender, EventArgs e)
{

Formular formular = new Formular();
formular.Show();
formular.Focus();

}

private void btnHinzufügen_Click(object sender, EventArgs e)
{
Formular formular = new Formular();
formular.Show();
formular.Focus();
}


}

最佳答案

       ...
for (int i = 0; i <= numDays; i++)
{
//Create Panel
test[i] = new Panel();
}

...

然后

            this.Control.Remove(test[i]);

关于c# - 如何从我的日历中删除所有面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41869252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com