Ich arbeite an einem Programm für die Schule. Es ist eine C# -GUI mit zwei Registerkarten.Anzeigen mehrerer Informationen aus einer Combobox-Auswahl?
Auf der ersten Registerkarte kann der Benutzer Informationen über ein neues Bankkonto wie Name, Konto-ID, Alter und Kontostand eingeben. Es gibt auch eine Schaltfläche, die den Namen des Benutzers in eine Combobox auf der zweiten Registerkarte setzt. Die zweite Registerkarte enthält die Combobox und einige Textfelder für: Name, ID, Alter und Balance.
Das Problem, mit dem ich konfrontiert bin, ist, dass, wenn ich einen Namen aus der Combobox auswähle, es nicht alle Textfelder auffüllt. Ich habe den Namen Textfeld herausgefunden, weil ich es direkt aus der Combobox ziehe. Aber ich kann nicht herausfinden, wie man die anderen Textfelder bevölkert: ID, Alter und Balance. Hier ist, was ich bisher haben ...
class BankAccount
{
//attributes
private string accountID;
private string customerName;
private int customerAge;
private double balance;
private const double DEFAULT_BALANCE = 500.00;
//construct
public BankAccount()
{
}
public BankAccount(string anID, string aName, int anAge, double aBalance)
{
accountID = anID;
customerName = aName;
customerAge = anAge;
balance = aBalance;
}
public BankAccount(string anID, string aName, int anAge)
{
accountID = anID;
customerName = aName;
customerAge = anAge;
balance = DEFAULT_BALANCE;
}
//accessors
public void SetID(string anID)
{
accountID = anID;
}
public void SetName(string aName)
{
customerName = aName;
}
public void SetAge(int anAge)
{
customerAge = anAge;
}
public void SetBalance(double aBalance)
{
balance = aBalance;
}
public string GetID()
{
return accountID;
}
public string GetName()
{
return customerName;
}
public int GetAge()
{
return customerAge;
}
public double GetBalance()
{
return balance;
}
and this is the form
public partial class Form1 : Form
{
ArrayList account = new ArrayList();
public Form1()
{
InitializeComponent();
}
private void btnAddAccount_Click(object sender, EventArgs e)
{
BankAccount aBankAccount = new BankAccount(txtAccountID.Text, txtName.Text,
int.Parse(txtAge.Text), double.Parse(txtBalance.Text));
account.Add(aBankAccount);
AddToComboBox();
ClearText();
}
private void AddToComboBox()
{
cboAccount.Items.Clear();
foreach (BankAccount person in account)
{
cboAccount.Items.Add(person.GetName());
}
}
private void ClearText()
{
txtName.Clear();
txtAccountID.Clear();
txtBalance.Clear();
txtAge.Clear();
txtAccountID.Focus();
}
private void cboAccount_SelectedIndexChanged(object sender, EventArgs e)
{
txtNameTab2.Text = cboAccount.SelectedItem.ToString();
}
aus irgendeinem Grund, wenn ich "txtNameTab2.Text = account (cboAccount.SelectedIndex) .CustomerName;" account ist rot unterstrichen und besagt, dass das Konto im aktuellen Kontext nicht vorhanden ist –
Probieren Sie 'txtNameTab2.Text = account [cboAccount.SelectedIndex] .CustomerName;' aus und stellen Sie sicher, dass Sie 'Private List account = new List hinzugefügt haben(); zu deiner Klasse. –
MusiGenesis
Entschuldigung, dass ich zwischen VB.NET und C# hin und her geblättert habe und manchmal bekomme ich die Syntax ein wenig ab. Es sollte [] sein, um den angegebenen Index anzugeben. Ich habe meine Antwort aktualisiert, um das zu reflektieren. – CBRRacer