私は自分のプロジェクトに合った解決策を見つけようと何時間も研究に費やしてきましたが、うまくいきませんでした。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace CustomerApplication
{
public partial class ListAllCustomersForm : Form
{ // default constructor method
public ListAllCustomersForm()
{
InitializeComponent();
/* Since this is the first method to be executed
* call the displayCustomers method to populate
* the list */
displayCustomers();
} // End of constructor
// okButton Click method
private void okBtn_Click(object sender, EventArgs e)
{
// retrieve hidden form's memory address
Form myParentForm = CustomerAppStart.getParentForm();
// now that we have the address use it to display the parent Form
myParentForm.Show();
//Finally close this form
this.Close();
} // end of okButton Click method
//display the customers
public void displayCustomers()
{
//format the header in the text box
customerList.Text = ""; //Clear the textbox
customerList.AppendText(
"-------------------------------------------------- \r\n");
customerList.AppendText(
"Name Address Zip \r\n");
customerList.AppendText(
"-------------------------------------------------- \r\n");
//local variables
String name = "";
String address = "";
int zip = 0;
//get all customers
Customer[] myCustArray = Customer.getAllCustomers();
//loop thru the array and display all the data
for (int k = 0; k < myCustArray.Length; k++)
{
if (myCustArray[k] != null)
{
StreamWriter Writer = new StreamWriter(@"C:\Users\Jake\Documents\college\CIS340\data.csv", true);
Writer.Write(myCustArray[k].getCustomerName() + "," + myCustArray[k].getCustomerAddress() + "," + myCustArray[k].getCustomerZip() + ",");
Writer.Close();
StreamReader Reader = new StreamReader(@"C:\Users\Jake\Documents\college\CIS340\data.csv");
Reader.ReadToEnd();
//get the customer attributes for this customer
name = myCustArray[k].getCustomerName();
address = myCustArray[k].getCustomerAddress();
zip = myCustArray[k].getCustomerZip();
//format the data
name = name.PadRight(20, ' ');
address = address.PadRight(23, ' ');
//display it to the textBox
this.customerList.AppendText(name + " " +
address + " " + zip + "\r\n");
}//end if not null
}//end for loop
}//end displayCustomers method
} // end of class definition
} // end of namespaces
このコードにより、テキスト ボックスをフォーマットし、作成した配列にヘッダーを与えることができます。また、「AddCustomerForm.cs」からのユーザー入力を .CSV ファイルに書き込むこともできます。このファイルをローカルでチェックして、値が追加されていることを確認できます。
私が抱えている問題は、.CSV ファイルから読み取って、書式設定されたテキスト ボックスにテキストを表示することです。
何を試しても、同じデバッグ セッション中に新しい顧客を追加しようとした場合を除き、空白の書式設定されたフォームしか表示されません。その場合、ユーザーの入力は "AddCustomerForm. cs」。
繰り返しになりますが、これが初心者の質問のように思われる場合は申し訳ありません。私はしばらくの間調査を行ってきましたが、明確な解決策はありません. 誰でも提供できる助けをいただければ幸いです。