private void buttonAddContest_Click(object sender, EventArgs e) { if (m_TabIndex < k_MaxNumberOfContests) { TabPageObserver tabPageContest = new TabPageObserver(); if (m_TabIndex == 0) { tabPageContest.Padding = new Padding(3); } FormAddContest newFormContest = new FormAddContest(); newFormContest.ShowDialog(); if (newFormContest.DialogResult == DialogResult.OK) { IContest newContest = ContestFactory.CreateContest( m_TabIndex + 1, newFormContest.Status, newFormContest.ImagePath, newFormContest.NumberOfWinners, newFormContest.LikeRequired, newFormContest.CommentRequired); m_ListOfContests.Add(newContest); try { newContest.PostContestStatus(); } catch (FacebookOAuthException) { MessageBox.Show("Failed to post status: No permissions."); } catch (Exception ex) { MessageBox.Show(ex.Message); } tabPageContest.Location = new Point(104, 4); tabPageContest.Name = string.Format("tabPageContest{0}", m_TabIndex + 1); tabPageContest.Size = new Size(867, 616); tabPageContest.TabIndex = m_TabIndex; tabPageContest.Text = string.Format("Contest {0}", m_TabIndex + 1); tabPageContest.UseVisualStyleBackColor = true; tabControlContest.Controls.Add(tabPageContest); buildContest(tabPageContest); m_TabIndex++; m_ReportDeletedContestDelegate += tabPageContest.m_ReportDeletedContestObserver; } } else { MessageBox.Show("You have reached the maximum number of contests."); } }
private void buttonDeleteConstest_Click(object sender, EventArgs e) { Button buttonDelete = (Button)sender; TabPageObserver tabPageToDelete = buttonDelete.Parent as TabPageObserver; m_ReportDeletedContestDelegate -= tabPageToDelete.m_ReportDeletedContestObserver; m_TabIndex--; tabControlContest.TabPages.Remove(tabPageToDelete); m_ListOfContests.RemoveAt((buttonDelete.Name[buttonDelete.Name.Length - 1] - '0') - 1); if (m_TabIndex != 0) { m_ReportDeletedContestDelegate.Invoke(int.Parse(tabPageToDelete.Text.Split(' ')[1])); } }
public TabPageObserver() : base() { m_ReportDeletedContestObserver = new ReportDeletedContestDelegate(this.UpdateIndexNumber); }