0

誰かが私を助けてくれることを願っています。私は比較的新しいので、あるクラスの変数の値を別のクラスに渡す方法を理解したいと思っています。この場合、Button_Click_2 で Button_Click_1 の numPage と filePath 配列を使用したいと思います。

前もって感謝します!

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        Microsoft.Win32.OpenFileDialog openFileDialog1 = new Microsoft.Win32.OpenFileDialog();

        openFileDialog1.Filter = "Images (.jpg)|*.jpg";
        openFileDialog1.FilterIndex = 1;

        openFileDialog1.Multiselect = true;

        bool? userClickedOK = openFileDialog1.ShowDialog();

        if (userClickedOK == true)
        {
            string[] filePaths = openFileDialog1.FileNames;
            int imageNum = 0;
            lblFilePath.Content = filePaths[imageNum];
        }

    }

    private void Button_Click_2(object sender, RoutedEventArgs e)
    {
        imageNum++;
        lblFilePath.Content = filePath[imageNum];
    }
}
4

4 に答える 4

0

両方をフォーム 1 のプロパティにする

public partial class MainWindow : Window
{

   private string[] FilePaths {get;set;}
   int imageNum = 0;

   public MainWindow()
   {
    InitializeComponent();
   }

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    Microsoft.Win32.OpenFileDialog openFileDialog1 = new Microsoft.Win32.OpenFileDialog();

    openFileDialog1.Filter = "Images (.jpg)|*.jpg";
    openFileDialog1.FilterIndex = 1;

    openFileDialog1.Multiselect = true;

    bool? userClickedOK = openFileDialog1.ShowDialog();

    if (userClickedOK == true)
    {
        FilePaths = openFileDialog1.FileNames;

        lblFilePath.Content = filePaths[imageNum];
    }

}

private void Button_Click_2(object sender, RoutedEventArgs e)
{
    imageNum++;
     if(imageNum<FilePaths.Length)
         lblFilePath.Content = FilePaths[imageNum];
}

}

于 2013-04-02T14:42:02.687 に答える
0

変数をメソッドに対してローカルにスコープするのではなく、ここでインスタンス変数を作成する必要があります。

public partial class MainWindow : Window
{
    private string[] filePaths;
    private int imageNum = 0;

    //...

}

次に、これらのインスタンス変数を 2 つのメソッドで使用できます (同じ名前の新しいローカル変数を再定義しないように注意してください)。

于 2013-04-02T14:40:22.703 に答える