当关闭Tab控件上的标签页时,调用form.close

问题描述 投票:0回答:1

在我的应用程序中,我试图在标签页中使用表格。这些表格都是数据管理表格。我编辑了tabcontrol(创建了一个自定义tabcontrol),以便可以通过双击tabheader来删除tabpage。

protected override void OnMouseDoubleClick(MouseEventArgs e)
{
  base.OnMouseDoubleClick(e);
  //* Default method of closing a tab.
  if (Selectedtab != null)
    TabPages.Remove(Selectedtab);
}

尽管可以。它实际上没有满足我的需求。因为选项卡页面中的表单上的任何更改都将丢失,无论以下内容如何

public partial class SomeForm : Form
{
  private void SomeForm_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (HasChanges() && CustomMessage.WarningBox("There is unsaved data. Are you sure you want to close"))
            return;
        ((TabControl)((TabPage)this.Parent).Parent).TabPages.Remove((TabPage)this.Parent);
    }
}

在此功能上设置断点时,它永远不会进入。现在我的问题是:是否可以从Tabcontrol调用表单的Close方法。最好是类似下面的内容。

protected override void OnMouseDoubleClick(MouseEventArgs e)
{
  base.OnMouseDoubleClick(e);
  if (Selectedtab != null)
  {
    if (Selectedtab.EmbeddedForm != null)
      TabPages.ASelectedtab.EmbeddedForm.Close();
  }
}

我面临的主要问题是,我仅知道选定的选项卡,不知道如何访问表单上的功能。而且我也找不到。

c# custom-controls tabcontrol visual-studio-2019
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.