[英]C# Switch-case Loop for Datagridview cells
我正在使用帶有datagridview和webbrowser控件的表單。 我在datagridview中有三列作為URL,用戶名和密碼。 我想要做的是自動為我經常使用的某些網站登錄。 因此,我不確定這是否正確,但是我創建了以下代碼。 問題在於switch的參數。
我將單擊datagridview上的行,然后單擊login_button,以便將用戶名和密碼信息傳遞到網頁上的相關字段。 之所以需要切換大小寫循環,是因為所有網頁的用戶名和密碼字段都有不同的元素ID。
正如我所說,我不確定datagridview是否允許切換用例,我在網上搜索了但找不到任何樣本。
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");
}
}
你確定
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
返回URL?
那將是第一個起點。
也許:
dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString()
至於datagrid +開關,datagrid不知道/不在乎該開關。 它所知道的是,當按下按鈕時,會調用:
private void login_button_Click(object sender, EventArgs e)
如果您對網址進行硬編碼會怎樣? 其他一切有用嗎?
編輯:哦,那是行不通的! 您在交換機中有退貨。 因此,您將結束該方法,並且永不調用:
HtmlElementCollection elements = this.webBrowser1.Document.GetElementsByTagName("Form");
foreach (HtmlElement currentElement in elements)
{
currentElement.InvokeMember("Login");
}
我不確定在C#中是否像這樣肯定,但是您可能必須對臨時變量執行切換,例如
string site = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
switch(site)
{
....
}
如果沒有其他事情,它將使調試更加容易。
每種情況都應以休息結束; 沒有回報;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.