Witam,
Mam problem, zwiazane z wyswietlaniem dabeli podczas klikania w inna zakladke.
Moj program posiada dynamiczne tworzenie zakladek. W chwili klikniecia w nowa zakladke utworzony zostaje obiekt, i na zakladke rysowana jest tabelka zgodnie z danymi z obiektu.
I teraz tak. samo tworzenie przebiega bezproblemowo. Natomiast gdy przelaczam sie miedzy zakladkami, to rysowany jest obiekt z zakladki na ktora kliknelam uprzednio.
Stworzylam dodatkowe etykiety aby sprawdzic czy to nie jest problem z blednym pobraniem danych o obiekcie, ale nie, te dane wyswietlane sa prawidlowo.
Pomozcie prosze.
private void NvelleTab()
{
string title = "TabPage " + (id_tab+1).ToString();
id_tab++;
TabPage myTabPage = new TabPage(title);
this.tabControl1.TabPages.Add(myTabPage);
this.tabControl1.SelectedTab = myTabPage;
this.tabControl1.SelectedTab.Name = id_tab.ToString();
this.tabControl1.SelectedTab.Paint += new System.Windows.Forms.PaintEventHandler(this.tabPage1_Paint);
}
private void nowyToolStripMenuItem_Click(object sender, EventArgs e)
{
// wyswietlenie Form2
NvlleChoix = new DateChoix(this);
if (NvlleChoix.ShowDialog() == DialogResult.OK)
{
this.Legende.Visible = true;
NvelleTab ();
id_stab = int.Parse(this.tabControl1.SelectedTab.Name);
Callandier call = new Callandier(Callandier.pub_mois, Callandier.pub_an, id_tab);
this.obj_list.Add(call);
label2.Text = id_tab.ToString();
label3.Text = "Name" +this.tabControl1.SelectedTab.Name;
label4.Text = obj_list[id_tab-1].af_an().ToString();
label5.Text = obj_list[id_tab-1].combien_jour().ToString();
};
}
private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
}
// Usuwanie zakładek
private void EffacerTab()
{
TabPage choix_page = tabControl1.SelectedTab;
this.tabControl1.TabPages.Remove(choix_page);
}
//Usuwanie zakladek
private void zamknijZakladkeToolStripMenuItem_Click(object sender, EventArgs e)
{
this.EffacerTab();
//wyswietlenie danych zakladki wybranej
id_stab = int.Parse(this.tabControl1.SelectedTab.Name);
label4.Text = obj_list[id_stab - 1].af_an().ToString();
}
private void tabControl1_Click(object sender, EventArgs e)
{
id_stab = int.Parse(this.tabControl1.SelectedTab.Name);
this.tabControl1.SelectedTab.Paint += new System.Windows.Forms.PaintEventHandler(this.tabPage1_Paint);
label3.Text = "Name" + this.tabControl1.SelectedTab.Name;
label4.Text = obj_list[id_stab-1].af_an().ToString();
label5.Text = obj_list[id_stab-1].combien_jour().ToString();
}
private void tabPage1_Paint(object sender, PaintEventArgs e)
{
graph = tabControl1.SelectedTab.CreateGraphics();
this.obj_list[id_stab-1].rysuj(graph);
}
public void rysuj (Graphics g)
{
int x1 = 0;
int y1 = 40;
int szer = 10;
int wys = 20;
Pen p = new Pen(Color.Black, 1);
for (int j = 1; j <= 5; j++ )
{
x1 = 0;
for (int i = 0; i <= this.combien_jour(); i++)
{
g.DrawRectangle(p, x1, y1, szer, wys);
x1 += szer;
}
y1 += wys;
}
}