et merci d'avoir pris le temps de lire ceci. J'utilise Visual Studio pour créer un programme qui stockera plusieurs profils de sauvegarde de lecteur flash sur des boutons dans une interface graphique C# en utilisant Visual Studio 2017. En fait, je reçois des erreurs que je n'arrive pas à comprendre, principalement à cause de cela. la première fois que j'ai travaillé en C# et que du code s'est caché de la part de Microsoft. -La première erreur concerne Controls.Add ne s'affiche pas pour un bouton, même si chaque source en ligne me dit comment ajouter un bouton à la ligne 78 de la fenêtre principale.Problèmes de bouton de base en C#
-La seconde implique que je ne sache pas comment donner à un bouton une méthode d'une autre classe à la ligne 76 de la fenêtre principale.
Le code: Profile.cs
using System;
using Microsoft.VisualBasic.FileIO;
public class Profile
{
private string mySource, myDestination, myName;
public Profile()
{
myName = myDestination = mySource = "";
}
public Profile(string name, string source, string destination)
{
myName = name;
mySource = source;
myDestination = destination;
using (System.IO.StreamWriter file =
new System.IO.StreamWriter(@"C:\Users\Scott\Documents\Visual Studio 2017\Projects\WpfApp1\profiles.txt"))
{
file.WriteLine(myName);
file.WriteLine(mySource);
file.WriteLine(myDestination);
file.WriteLine("\n");
}
}
public void backup()
{
try
{
FileSystem.CopyDirectory(mySource, myDestination,
UIOption.AllDialogs);
}
catch (System.IO.IOException e)
{
Console.WriteLine(e.Message);
}
}
public String getName()
{
return myName;
}
}
MainWindow.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.IO;
namespace WpfApp1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
refresh();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Console.WriteLine("Enter the name of the profile: ");
string name = Console.ReadLine();
Console.WriteLine("Enter the folder which you want to copy (ENTER EXACTLY AS IN FILE SYSTEM): ");
string source = Console.ReadLine();
Console.WriteLine("Enter backup destination (ENTER EXACTLY AS IN FILE SYSTEM): ");
string destination = Console.ReadLine();
refresh();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Console.WriteLine("Enter the EXACT name of the profile you want to delete: ");
string line = Console.ReadLine();
string[] lines = File.ReadAllLines(@"C:\Users\Scott\Documents\Visual Studio 2017\Projects\WpfApp1\profiles.txt");
for (int i = 0; lines[i] != null; i += 1)
{
if (lines[i] == line)
{
lines[i] = lines[i + 1] = lines[i + 2] = "";
i += 2;
}
}
File.WriteAllLines(@"C:\Users\Scott\Documents\Visual Studio 2017\Projects\WpfApp1\profiles.txt", lines);
}
private void ButtonBackup(Profile pro)
{
pro.backup();
}
public void refresh()
{
string[] lines = File.ReadAllLines(@"C:\Users\Scott\Documents\Visual Studio 2017\Projects\WpfApp1\profiles.txt");
String reader = "placeholder";
int i = 0;
while (reader != null)
{
reader = lines[i];
i += 1;
if (reader != "\n")
{
String name = reader;
reader = lines[i];
i += 1;
String source = reader;
reader = lines[i];
String destination = reader;
i++;
Profile newprofile = new Profile(name, source, destination);
Button b = new Button();
b.Name = name;
b.Click += new EventHandler(ButtonBackup(newprofile); //error 1
System.Windows.Controls.Add(b); //error 2
}
}
}
}
}
Suggestion: Le texte entier de votre question est un bitt déconner. L'en-tête et tout ce qui concerne la cible de votre application (sauvegarde ..) n'a rien à voir avec la question qui lit essentiellement pour moi "Comment écrire une application WPF en C# pour les débutants absolus". – Philm
Vous attendez-vous à ce que les gens comptent les numéros de ligne dans votre code ci-dessus pour trouver les lignes 76 et 78? – elgonzo
Oui, probablement une mauvaise formulation de ma part ... ce que je voulais dire, c'est que je ne peux pas voir le code qui fait les deux premiers boutons ("ajouter profil" et "supprimer le profil"), donc je n'ai pas un exemple à partir duquel travailler. – noob