Je travaille sur un formulaire avec les commandes datagridview et webbrowser. J'ai trois colonnes comme URL, nom d'utilisateur et mot de passe dans datagridview. Ce que je veux faire est d'automatiser la connexion pour certains sites Web que j'utilise fréquemment. Pour cette raison, je ne suis pas sûr que ce soit la bonne approche, mais j'ai créé le code ci-dessous. Le problème est avec l'argument de switch.Boucle du boîtier de commutation C# pour les cellules Datagridview
Je clique sur la ligne sur datagridview, puis sur login_button afin que les informations de nom d'utilisateur et de mot de passe soient transmises aux champs correspondants sur la page Web. Pourquoi ai-je besoin d'une boucle de casse, car toutes les pages Web ont des ID d'élément différents pour les champs de nom d'utilisateur et de mot de passe. Comme je l'ai dit, je ne suis pas sûr si datagridview permet switch-case, j'ai cherché sur le net, mais n'a pas pu trouver d'échantillons.
private void login_button_Click(object sender, EventArgs e)
{
switch (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString())
{
case "http://www.website1.com":
webBrowser1.Document.GetElementById("username").InnerText = dataGridView1.Rows[3].Cells[3].Value.ToString();
webBrowser1.Document.GetElementById("password").InnerText = dataGridView1.Rows[3].Cells[4].Value.ToString();
return;
case "http://www.website2.com":
webBrowser1.Document.GetElementById("uname").InnerText = dataGridView1.Rows[4].Cells[3].Value.ToString();
webBrowser1.Document.GetElementById("pswd").InnerText = dataGridView1.Rows[4].Cells[4].Value.ToString();
return;
}
HtmlElementCollection elements = this.webBrowser1.Document.GetElementsByTagName("Form");
foreach (HtmlElement currentElement in elements)
{
currentElement.InvokeMember("Login");
}
}