Question

Hello I'm thinking of creating a tabcontrol which the tabpages will be filtered by the clicks in the menustrip.

For ex.

My menustrip is in form 1 and my tabcontrol is in form 2

My tabcontrol consist of 7 tabs and I want only 1 tab will be shown at a time.

for example If I click the name in the menustrip it will open/show a new form and the tabcontrol will only show the names tab.

I wonder if its possible because making diff forms for each list seems to be very long.

thanks for reading this.

Was it helpful?

Solution

Problem is, the TabPage control has no Visible property (well, it has, but it does nothing). So you can't hide and show tabs at will. You'll have to remove the tabs that should not be visible.

You could make a form (named TabbedForm) with code like this:

private readonly int _index;

public TabbedForm(int index)
{
  this._index = index;
  InitializeComponent();
}

private void form_Load(object sender, EventArgs e)
{
  for (int index = this.tabControl1.TabPages.Count - 1; index >= 0; index--)
  {
    if (index != this._index)
      this.tabControl1.TabPages.Remove(this.tabControl1.TabPages[index]);
  }
}

With each menu button (Clicked event) in your main form you can open a TabbedForm with a different index.

OTHER TIPS

Yes, this will work pretty fine. But I think, you must use the default tab view control for this and that must not create the problem either in you case too.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top