2012-04-24 9 views
1

私はもう一度これを試してみます。私は今、より多くの情報を得ました。私は開いて保存ダイアログを使用することができないと理解し、データベースはありません。だから、私は以前にダイアログを開いて保存する方法を示していたので、やっと失われてしまった。私は私がやるべきことをし、今まで私が持っているコードを入れようとしています。私はコードをビルドして追加する必要があります。私はそれに追加すると思われるものも示します。私は今、この原因を理解するための最善の方法を見つけようとしています。私はまだ新しく、人々が私の理解を助けようとしている最後のカップルの日を知っています。ここに私がしなければならないことがあります。ファイルパスとテキストボックス

txtFilePath <という名前のテキストボックスを追加---すでに

•は、「ロード」を語る上でテキストボックスの横にあるボタンを追加することを持ってい-already <を(適当な名前)•その

•そして追加:テキストボックス (絶対パスではない相対txtFilePath)で指定したファイルを読み込み、thebutton「ロード」をクリックすると、すでにこの

•を持っている - 「保存」(適当な名前)<は言うボタンを追加します。見つかったオブジェクトリストボックス<に内---ユーザーが「保存」ボタンをクリックすると、 は現在、内部の値を切り捨てず にtxtFilePath(絶対パスではない相対的)で指定したファイルを選択したレコードを書き込む

•を理解していません`

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void addButton_Click(object sender, EventArgs e) 
     { 
      EditDialog newEmployeeDialog = new EditDialog(); 
      if (newEmployeeDialog.ShowDialog() == DialogResult.OK) 
      { 
       employeeList.Items.Add(newEmployeeDialog.StaffMember); 
      } 
     } 

     private void deleteButton_Click(object sender, EventArgs e) 
     { 
      if (employeeList.SelectedIndex == -1) 
       return; 

      if (MessageBox.Show("Really delete this employee", 
       "Delete", MessageBoxButtons.YesNo, 
        MessageBoxIcon.Question) 
      == DialogResult.Yes) 
      { 
       employeeList.Items.Remove(
        employeeList.SelectedItem); 
      } 
     } 

     private void editButton_Click(object sender, EventArgs e) 
     { 
      if (employeeList.SelectedIndex == -1) 
       return; 

      int employeeNum = employeeList.SelectedIndex; 
      EditDialog newEmployeeDialog = new EditDialog(); 
      newEmployeeDialog.StaffMember = 
       (Employee)employeeList.SelectedItem; 

      if (newEmployeeDialog.ShowDialog() == DialogResult.OK) 
      { 
       employeeList.Items.RemoveAt(employeeNum); 
       employeeList.Items.Insert(employeeNum, newEmployeeDialog.StaffMember); 
       employeeList.SelectedIndex = employeeNum; 
      } 
     } 

     private void employeeList_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (employeeList.SelectedIndex != -1) 
      { 
       Employee currentEmployee = (Employee)employeeList.SelectedItem; 
       firstName.Text = currentEmployee.FirstName; 
       lastName.Text = currentEmployee.LastName; 
       jobTitle.Text = currentEmployee.JobTitle; 
      } 
      else 
      { 
       firstName.Text = lastName.Text = jobTitle.Text = ""; 
      } 
     } 
` 

は、今私はあなたがボタンのクリックを見ることはできません知っているが、私は彼らにマークを持っている: - <ここ

を理解していないが、私が持っているコードの一部です。私はあなたがオープンを使用し、それがどのように機能するかを知っています。どのように私はこれについて行くことができますか?私はストリームライター権利を使用します。私は、ユーザーがテキストボックスにパスを入力し、ユーザーが読み込みをヒットすると、指定されたファイルをロードすることを理解します。今私はこの権利を語ることができるコードを理解しようとしています。私はテキストボックスのtxtFilePathに名前を付ける必要があるため

String filePath = this.txtFilePath.Text; 

それはこのようなものになるだろう。私はあなたの中にはこれがシンプルだと言う人もいるかもしれませんが、最初に学んでいるときはそれほど単純ではないと思います。私は自宅から私の大学をやるので、私が理解するのを助ける何かを試してきました。読んでいただきありがとうございます。

アップデート:これが正しければ、それはファイルを読み込み、この

private void Load_Click(object sender, EventArgs e) 
{ 
StreamReader myReader = new StreamReader(C:\\") 
txtFilePath.Text = my reader.read to end(); 
myReader.Close(); 
} 

は、ファイルをそこに書いているようなものになるだろう

{ 
StreamWriter myWriter = new StreamWriter("C:\\test.txt", true); 
      myWriter.Write("Some text"); 
      myWriter.WriteLine("Write a line"); 
      myWriter.WriteLine("Line 2"); 
      myWriter.Close(); 
} 

その後、私はそれをどこに取得する必要がありますメモ帳がポップアップするようにファイルがない場合は、ファイルを追加してファイルを削除せずに保存することができます。

var filepath = txtFilePath.Text; 
if (File.Exists(filepath)) 
{ 
    var lines = File.ReadAllLines(filepath); 
    foreach (var line in lines) 
     employeeList.Items.Add(line); 
} 

次にあなたがそのファイルに新しい従業員の名前を追加したいと仮定します。ファイルは、従業員の名前のリストが含まれている、あなたはこのようなものを使用して、リストボックスにロードすることができるはずと仮定すると、

答えて

0

ユーザーだけのリストボックスに入力された:私が働いているものです

var filepath = txtFilePath.Text; 
if (File.Exists(filepath)) 
    using (var sw = File.AppendText(filepath)) 
     sw.WriteLine((string)employeeList.Text); 
else 
    using (var sw = File.CreateText(filepath)) 
     sw.WriteLine((string)employeeList.Text);  

これはテストされていないが、それはそのままでほぼ動作するはずです...

+0

はファイルので、コードそのものであります〜されるリストボックスにロードされます。私は理解しようとしているので、コードを書くことができます。 – shan

+0

「ロード」ボタンでは、実際に開くダイアログコントロールを使用せずにファイルを選択できる必要がありますか?それはあなたが苦労している部分ですか? –

+0

はい、私はopendialogを使用する方法を知っていますが、私はそれを使用することはできません。私がそれを保存するのは、従業員リストを保存して、各人を保存できるようにすることだと思います。 – shan

関連する問題