2016-04-29 18 views
1

私は他のメソッドからの文字列の呼び出し/使用方法を知りたいと思います。異なるイベントで文字列変数を使用するにはどうすればよいですか?

public partial class PPAP_Edit : Form 
    { 
    string Main_dir { get; set; } 
    string Sub_dir { get; set; } 
    string targetPath { get; set; } 

...等私はMain_dirSub_dirTARGETPATHにrefferingていますすべての

private void button_browse_Click(object sender, EventArgs e) 
    { 
     if (od.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 
      try 
      { 
       Main_dir = @"C:\Users\h109536\Documents\PPAP\"; 
       Sub_dir = text_PSW_ID.Text + "_" + text_Partnumber.Text + "_" + text_Partrev.Text + @"\"; 
       targetPath = System.IO.Path.Combine(Main_dir, Sub_dir); 
       { 
        if (!System.IO.Directory.Exists(targetPath)) 
        { 
         System.IO.Directory.CreateDirectory(targetPath); 
         MessageBox.Show("Folder has been created!"); 
        } 
        foreach (string fileName in od.FileNames) 

         System.IO.File.Copy(fileName, targetPath + System.IO.Path.GetFileName(fileName), true); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("An error has occurred: " + ex.Message); 
      } 
        } 
private void button_open_Click(object sender, EventArgs e) 
    {    
     if (!Directory.Exists(targetPath)) 
     { 
      MessageBox.Show("Folder is not added to the database!"); 
      System.Diagnostics.Process.Start("explorer.exe", Main_dir);     
     } 
     else 
     { 
      System.Diagnostics.Process.Start("explorer.exe", Main_dir + Sub_dir); 
     }      
    } 

をコピーしたくない文字列が、ブラウズボタンをクリックするまで、オープンボタンメソッドは機能しません。

ご協力いただきありがとうございます。

+0

「私は[参照]ボタンをクリックするまでオープンボタンメソッドは動作しません」 - 'Main_dir'、' targetPath'、と 'Sub_dir'がまだで定義されていない場合は、フォルダを開くことを提案するにはどうすればよいです"ブラウズ"ボタン? – Quantic

+0

私は間違っているが、私はそれがopenFiledialogを通して定義すべきではないと思う。 Main_dirはすでにテキストボックスから@ "C:\ sub_dir"として定義されています – NOGRP90

+0

ブラウザのメソッドよりオープンボタンイベントにコード全体を入れた場合 – NOGRP90

答えて

0

フォームのコンストラクタからメインディレクトリのデフォルトを設定します。フォーム内のどのメソッドでも使用できるようになります。サブパスとターゲットパスは単なる関数なので、getterメソッドのプロパティに入れることができます。

public partial class PPAP_Edit : Form 
{ 
    // set this from constructor 
    public string MainDir { get; set; } 

    // can't set this in constructor as it requires access to form controls, but can just use the getter 
    public string SubDir 
    { 
     get 
     { 
      return text_PSW_ID.Text + "_" + text_Partnumber.Text + "_" + text_Partrev.Text + @"\"; 
     } 
    } 

    // again just use the getter 
    public string TargetPath 
    { 
     get 
     { 
      return Path.Combine(MainDir, SubDir); 
     } 
    } 

    // set defaults in constructor 
    public PPAP_Edit() 
    { 
     MainDir = @"C:\Users\h109536\Documents\PPAP\"; 
    } 
} 
+0

完璧に動作しています!ありがとうございます – NOGRP90

+0

問題はありません:-) – Erresen

関連する問題