簡體   English   中英

Datagridview單元的C#開關案例循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM