J'ai un fichier .resx contient des paires de valeurs de nom de chaîne. Maintenant, je veux obtenir le nom et la paire de valeurs dans une liste en utilisant pragmatiquement C# (Windows Forms). Comment puis-je y parvenir? mais voici une torsion dans la réalisation de la valeur dans une liste, j'ai une "zone de liste déroulante" et deux zones de texte. Au moment de l'exécution, toutes les clés doivent être ajoutées dans la zone de liste déroulante et automatiquement remplir deux autres cases de test avec Valeur et commentaire. S'il vous plaît aidez-moi dans cette tâche. Merci à l'avance ...Lire clé, la valeur et le commentaire à partir des ressources dans un fichier .resx
0
A
Répondre
1
Jetez un oeil à ResXResourceReader, cela peut facilement faire ce que vous essayez de faire.
Par exemple, vous pouvez faire quelque chose comme:
private void Form1_Load(object sender, EventArgs e)
{
//ComboBox will use "Name" property of the items you add
comboBox1.DisplayMember = "Name";
//Create the reader for your resx file
ResXResourceReader reader = new ResXResourceReader("C:\\your\\file.resx");
//Set property to use ResXDataNodes in object ([see MSDN][2])
reader.UseResXDataNodes = true;
IDictionaryEnumerator enumerator = reader.GetEnumerator();
while (enumerator.MoveNext())
{ //Fill the combobox with all key/value pairs
comboBox1.Items.Add(enumerator.Value);
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == -1)
return;
//Assembly is used to read resource value
Assembly currentAssembly = Assembly.GetExecutingAssembly();
//Current resource selected in ComboBox
ResXDataNode node = (ResXDataNode)comboBox1.SelectedItem;
//textBox2 contains the resource comment
textBox2.Text = node.Comment;
//Reading resource value, you can probably find a smarter way to achieve this, but I don't know it
object value = node.GetValue(new AssemblyName[] { currentAssembly.GetName() });
if (value.GetType() != typeof(String))
{ //Resource isn't of string type
textBox1.Text = "";
return;
}
//Writing string value in textBox1
textBox1.Text = (String)value;
}
Que voulez-vous dire par « dans une liste que j'ai une « boîte Combo » et deux zones de texte »? S'il vous plaît clarifier votre question et si possible poster un code. :) – LucaMus
Salut @LucaMus je veux ajouter toutes les clés dans la liste déroulante et correspondant à chaque clé une valeur et un commentaire présents dans le fichier resx. Je veux quand je sélectionne une clé via comboBox la valeur et le commentaire de cette clé apparaissent automatiquement dans le textBox1 avec valeur et textbox2 avec commnet – VIVEK