0

こんにちは私は、メニューストリップのクリックによってタブページがフィルタリングされるタブコントロールを作成することを考えています。

例:

メニューストリップはフォーム1にあり、タブコントロールはフォーム2にあります

私のタブコントロールは7つのタブで構成されており、一度に1つのタブだけが表示されるようにしたいです。

たとえば、メニューストリップで名前をクリックすると、新しいフォームが開いて表示され、タブコントロールには[名前]タブのみが表示されます。

リストごとに差分フォームを作成するのは非常に長いように思われるので、それは可能かと思います。

これを読んでくれてありがとう。

4

2 に答える 2

1

問題は、TabPageコントロールにVisibleプロパティがないことです(まあ、持っていますが、何もしません)。したがって、タブを自由に非表示にしたり表示したりすることはできません。表示されるべきではないタブを削除する必要があります。

次のようなコードでフォーム(TabbedFormという名前)を作成できます。

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]);
  }
}

メインフォームの各メニューボタン(Clickedイベント)を使用して、異なるインデックスでTabbedFormを開くことができます。

于 2011-12-04T19:10:44.460 に答える
0

はい、これはかなりうまくいきます。ただし、これにはデフォルトのタブビューコントロールを使用する必要があり、どちらの場合も問題が発生しないようにする必要があると思います。

于 2011-12-02T05:37:54.437 に答える