私が見逃している単純なものがあると確信していますが、この時点で私は途方に暮れていることを告白しなければなりません.
ユーザーが開くことを選択したアカウントごとに、TabItems をメインの TabControl にプログラムで追加しています。新しい TabItem を作成して追加する前に、ユーザーが既に別のタブでアカウントを開いているかどうかを確認したいと思います。まったく同じタブが 2 つ開いたままになりたくありません。
これが私が最初に書いたコードです。うまくいけば、私が達成しようとしていることのアイデアが得られます.
if (tab_main.Items.Contains(accountNumber))
{
tab_main.SelectedIndex = tab_main.Items.IndexOf(accountNumber);
}
else
{
Search s = new Search(queryResults, searchText);
TabItem tab_search = new TabItem();
tab_search.Header = searchString;
tab_search.Name = accountNumber;
tab_search.Content = s;
tab_main.Items.Add(tab_search);
}
もちろん、これは正しく動作しません。WinForms では、TabControl には、TabPage の名前を検索するために使用できる、ContainsKey メソッドを含む TabPages コレクションがあります。Items.Contains() メソッドが探しているものを取得できません。これは、オブジェクトを引数として指定するだけで、アイテムの名前を参照していないためです!
どんな助けでも大歓迎です。
ありがとう!