0

わかりました、それで私は絵を表示するPictureWindowと呼ばれる窓を持っています(私はタブを作ることに関係しないコードを切り取りました)。 TabControlは "itemsTab"という名前です。ボタンを押すだけで、新しいタブを問題なく作成できます。しかし、呼び出されたメソッド内で同じ操作を使用してもうまくいきません。 buttonTab_Clickメソッドを使用すると新しいタブが作成されますが、newTabメソッドは作成されません。

私が見ることができる唯一の本当の違いは送信者とRoutedEventArgsオブジェクトによるものです - これらはここで操作にどのように影響しますか?それとも私が見逃している何か他のものはありますか?

前もって感謝します。

編集するさらに不思議なことに、newTabメソッドは新しいタブを作成しますが、それはPictureWindowコンストラクタメソッドで呼び出された場合に限られます。私が以下を持っているならば、新しいタブが作られます。

        
public PictureWindow(string current)
        {
            InitializeComponent();
            newTab(current);
        }

しかし、他の場所でこのメソッドを呼び出すと、うまくいきません。


public partial class PictureWindow : Window
    {
        public PictureWindow(string current)
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
        }

        private void buttonClose_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void buttonTab_Click(object sender, RoutedEventArgs e)
        {
            TabItem newTab = new TabItem();
            newTab.Header = "New Tab!";
            itemsTab.Items.Add(newTab);
        }

        public void newTab(string current)
        {
            TabItem newTab = new TabItem();
            itemsTab.Items.Add(newTab);

        }
    }


  • ブレークポイントを設定して、newTab()が実際に呼び出されることを確認しましたか。 - Blachshma
  • はい、そうです。どちらも正しく呼び出され、同じデータで実行されます。しかし、実際に新しいタブを作るのは1人だけです。 - Irish Yobbo
  • 万が一他の誰かがこの愚かな間違いをした場合に備えて、私は問題の解決策を掲載しています。新しいタブ項目が作成されて追加されましたが、現在のウィンドウには追加されません。var newWindow = new PictureWindow(fileName); var window = newWindow.getCurrentPictureWindow(); window.newTab(fileName);getCurrentPictureWindowを使用して正しいウィンドウを選択することで、タブは正常に追加されました。 - Irish Yobbo

関連する質問

最近の質問