Les bonnes nouvelles sont que je suis à la toute dernière partie de ce projet, la mauvaise nouvelle est que je ne peux pas le comprendre. Mon programme consiste en deux formes. La première forme n'est pertinente que pour le moment car c'est à l'origine que je charge le fichier texte dans un dictionnaire.Trouvez l'élément dans le tableau qui correspond à la sélection et écrivez à cette ligne du tableau
class SharedMethods
{
public static void LoadDictionary(Dictionary<string, string> vendorPhones)
{
string currentLine;
string[] fields = new string[2];
StreamReader vendorReader = new StreamReader("Vendor.txt");
while (vendorReader.EndOfStream == false)
{
currentLine = vendorReader.ReadLine();
fields = currentLine.Split(',');
vendorPhones.Add(fields[1], fields[6]);
string[] name = { fields[1] };
string[] phone = { fields[6] };
}
vendorReader.Close();
}
}
Maintenant, la deuxième forme est ce qui est important. Ce formulaire est ouvert à partir du premier formulaire et permet à l'utilisateur de sélectionner un nom dans une liste déroulante, et le numéro de téléphone qui appartient à ce nom est affiché dans une zone de texte. L'utilisateur peut alors taper dans la zone de texte pour écraser ce nom et cliquer sur enregistrer pour l'enregistrer dans un fichier texte. Mon problème est que je ne peux pas comprendre comment obtenir la fonction d'écriture pour trouver le nom sélectionné dans le texte, puis écrire sur l'élément de téléphone actuel dans cette rangée. Voici mon code pour ce formulaire:
public partial class UpdateVendor : Form
{
public UpdateVendor()
{
InitializeComponent();
}
public Dictionary<string, string> vendorPhones = new Dictionary<string, string>();
private void UpdateVendor_Load(object sender, EventArgs e)
{
SharedMethods.LoadDictionary(vendorPhones);
foreach (string name in vendorPhones.Keys)
{
cboVendors.Items.Add(name);
}
}
private void cboVendors_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedName = cboVendors.SelectedItem.ToString();
string phone = vendorPhones[selectedName];
txtPhone.Text = phone.ToString();
}
private void btnSave_Click(object sender, EventArgs e)
{
//SharedMethods.LoadDictionary(vendorPhones);
//string selectedName = cboVendors.SelectedItem.ToString();
//string newPhone;
//newPhone = txtPhone.Text;
//using (var sw = new StreamWriter("Vendors.txt"))
//{
//}
// I've tried a lot of things but can't get any to work.
}
Désolé si le code vous fait grincer de dégoût. Je suis en train d'apprendre le code et je suis extatique que ça marche la moitié du temps.
Pour ajouter, voici comment le programme recherche lors de l'exécution: Second form running
Vous avez dit: « Cette forme est ouverte à partir de la première forme et permet à l'utilisateur de sélectionner un nom une zone de liste déroulante et le numéro de téléphone qui appartient à ce nom s'affiche dans une zone de texte.L'utilisateur peut alors taper dans la zone de texte pour remplacer ce nom et cliquez sur Enregistrer pour l'enregistrer dans un fichier texte. Ne voulez-vous pas dire que l'utilisateur peut taper dans la zone de texte pour écraser le ** numéro de téléphone **? –