私は学校で働いているものはありますが、問題は継続しており解決できません。私はほとんどプロジェクトを終わらせていますが、私はこの単純な問題にぶち当たっています。ですからまず、5つの連絡先を含むファイルを各連絡先に関する情報を含めて作成する必要があります。クラスを使用して連絡先をリストに登録する必要があります。リストから連絡先を選択すると、各自の情報とともに新しいフォームが表示されます。ここで私がこれまで持っているコードは次のとおりです。 メインフォームどのようにして1つのフォームから別のフォームに情報を送信しますか
public Form1()
{
InitializeComponent();
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void Form1_Load(object sender, EventArgs e)
{
lstNames.Items.Clear();
}
private void btnGetInfo_Click(object sender, EventArgs e)
{
{
// Call methods
FileRead();
DisplayNameList();
}
}
private void FileRead()
{
try
{
StreamReader inputFile;
string line;
char[] deliminator = { ',' };
inputFile = File.OpenText("Accounts.txt");
//While loop to move through the entries.
while (!inputFile.EndOfStream)
{
//Use class
PersonEntry entry = new PersonEntry();
//Variable to hold line.
line = inputFile.ReadLine();
//Tokenize the line.
string[] tokens = line.Split(deliminator);
//Store the tokens in the entry object.
entry.Name = tokens[0];
entry.Email = tokens[1];
entry.PhoneNumber = tokens[2];
//Get the names in the list!
nameList.Add(entry);
}
}
catch (Exception ex)
{
MessageBox.Show("ERROR: Something went WRONG! " + " " + ex.Message);
}
}
private void DisplayNameList()
{
//Add the entry objects to the List
foreach (PersonEntry nameDisplay in nameList)
{
lstNames.Items.Add(nameDisplay.Name);
}
}
private void lstNames_SelectedIndexChanged(object sender, EventArgs e)
{
if (lstNames.SelectedIndex != -1)
{
//Get full info for the selected item in the list
string name = nameList[lstNames.SelectedIndex].Name;
string email = nameList[lstNames.SelectedIndex].Email;
string phone = nameList[lstNames.SelectedIndex].PhoneNumber;
//Create second form for these details
Informationform form2 = new Informationform(name, email, phone);
form2.ShowDialog();
}
else
{
MessageBox.Show("Please pick a name!");
}
}
}
}ここで
私は2番目のフォームを持っています!
public partial class Informationform : Form
{
public Informationform()
{
InitializeComponent();
}
public Informationform(string name, string email, string phone)
{
lblName.Text = name;
lblEmail.Text = email;
lblPhone.Text = phone.tostring();
}
private void Informationform_Load(object sender, EventArgs e)
{
}
}
}
と、ここで私は
class PersonEntry
{
// Fields
private string _name; // The phone's brand
private string _email; // The phone's model
private string _phonenumber; // Retail price
// Constructor
public PersonEntry()
{
_name = "";
_email = "";
_phonenumber = "";
}
// Brand property
public string Name
{
get { return _name; }
set { _name = value; }
}
// Model property
public string Email
{
get { return _email; }
set { _email = value; }
}
// Price property
public string PhoneNumber
{
get { return _phonenumber; }
set { _phonenumber = value; }
}
}
}
を作成したクラスを行く、これは狂気私を運転している、問題は私が名をクリックするたびにありますリスト、私は空であるという例外エラーが発生します(誰の情報もラベルに表示されるはずです)!コードを見てください!事前に感謝!引数を受け入れ、あなたのコンストラクタで
これはWindowsフォーム(WinForms)と仮定していますか?そうであれば、実際には2つのリストは必要ありません。 ListBoxコントロールはオブジェクトを受け入れるので、クラスのオブジェクトで直接入力することができます。追加する必要があるのは、ToStringのオーバーライドだけです。 –
どうすればよいのかのコード例を教えてもらえますか? –