我已經重寫了onPaint方法,並且計劃做一個小修改,我需要從我的VB.NET代碼中將一個列表傳遞給這個C#腳本。下面是我的代碼。如何覆蓋此onPaint方法以傳遞列表?
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.Clear(SystemColors.Window);
for (int i = 0; i < Months.Length; i++)
{
foreach (MonthViewDay day in Months[i].Days)
{
if (!day.Visible) continue;
MonthViewBoxEventArgs evtDay = new MonthViewBoxEventArgs(e.Graphics, day.Bounds, day.Date.Day.ToString(),
StringAlignment.Far,
day.Grayed ? DayGrayedText : (day.Selected ? DaySelectedTextColor : ForeColor),
day.Selected ? DaySelectedBackgroundColor : DayBackgroundColor);
if (day.Date.Equals(DateTime.Now.Date))
{
evtDay.BorderColor = TodayBorderColor;
}
//this is where I plant to add my code IF I get to know to pass a list
else
{
//search if day.Date is present in the list
//if present then update a different border color
}
DrawBox(evtDay);
}
請注意,我的列表參數是另一個自定義類。 我應該在這裏使用任何解決方案或方法?
在此先感謝。
究竟應該從我的VB.NET代碼中調用此PassList方法?它是否在表單加載事件期間? –
這取決於你的業務邏輯,你可以通過表單加載或在窗體構造函數 –
對不起,這是新的,我仍然想知道什麼時候這個onPaint會被調用。我不確定當我的窗體構造函數被調用或onFormLoad時會不會調用它。:(任何幫助? –