Как нажать на точную строку на wintable с codedui? - PullRequest
0 голосов
/ 11 февраля 2019

Я хочу щелкнуть точную строку в WinTable, где мои критерии соответствуют, но пока не удалось.Я могу искать критерии для точной строки, но не могу получить общее количество строк, чтобы создать цикл для всех строк.Я попробовал сбор и таблицу. Ряды. Счет, но оба ничего мне не приносят.Может ли кто-нибудь помочь мне в этом?

        #region Variable Declarations
        WinTable uIG1Table = this.UIProMANAGEWindow.UIDefinitionsWindow.UIG1Window.UIG1Table;
        WinRow dataGridrow = uIG1Table.GetRow(0);
        #endregion

        UITestControlCollection rows = uIG1Table.Rows;

        // MessageBox.Show(rows[5].RowIndex.ToString());

        foreach (WinRow row in uIG1Table.Rows)

        {

            foreach (WinCell cell in row.Cells)
            {
                if (cell.Value.ToString() == "E81")
                    Mouse.Click(cell, new Point(5, 0));
            }
        }

, и это код для цикла for

            int rows = uIG1Table.Rows.Count;

        for (int i = 0; i < rows; i++)
        {
            foreach (WinCell cell in dataGridrow.Cells)
            {
                if (cell.Value.ToString() == "E81")
                    Mouse.Click(cell, new Point(5, 0));
            }
        }

1 Ответ

0 голосов
/ 13 февраля 2019

При выполнении GetChildren() в строке вы заметите, что первый дочерний элемент имеет тип RowHeader.Пользователь обычно щелкает заголовок строки, чтобы выбрать строку.

Следующий код будет перебирать все строки в DataGridView и щелкать заголовок строки, эффективно выбирая строку:

UITestControlCollection rows = YourUIMapTable.Rows;

foreach (UITestControl row in rows)
{
    UITestControl rowHeader = row.GetChildren().Single(child => child.ControlType == ControlType.RowHeader);
    Mouse.Click(rowHeader);
}

Если вы хотите выбрать конкретную строку, вы можете сделать что-то вроде этого:

Mouse.Click(YourUIMapTable.Rows[putIndexNumberHere].GetChildren().Single(child => child.ControlType == ControlType.RowHeader));

Пример кода выше основан на программе, которую я написал в своем ответе на этот вопрос: Как получить ячейкуинформация о цвете WinCell с codedui?

...