Как выбрать строку 1 за раз в datagridview и показать, используя окно сообщения - PullRequest
0 голосов
/ 24 октября 2018

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

dgvCart был моим обзором данных

private void button1_Click_2 (отправитель объекта, EventArgs e)

    {
        for (int i = 0 ; i < dgvCart.Rows.Count; i++)
        {
            dgvCart.ClearSelection();
            dgvCart.Rows[i].Selected = true;

            if (dgvCart.SelectedCells.Count > 0)
            {
                int selectedrowindex = dgvCart.SelectedCells[i].RowIndex;

                DataGridViewRow selectedRow = dgvCart.Rows[selectedrowindex];

              string  _name = Convert.ToString(selectedRow.Cells["Column1"].Value);
              decimal _quantity = Convert.ToDecimal(selectedRow.Cells["Column3"].Value);
              MessageBox.Show("NAME: " +   "Quantity: " + _quantity.ToString());
                dgvCart.Rows[i].Selected = false;
            }
          //  string _name = dgvCart.CurrentRow.Cells[0].Value.ToString();
          //  decimal _quantity = Convert.ToDecimal(dgvCart.CurrentRow.Cells[2].Value.ToString());


        }

    }

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Я просто скопировал и вставил ваш код, и он работал нормально в соответствии с вашим желаемым выводом.Пожалуйста, посмотрите на код ниже:

    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("id");
        dt.Columns.Add("name");
        dt.Columns.Add("quantity");

        DataRow dr;

        dr = dt.NewRow();
        dr["id"] = "1";
        dr["name"] = "mobile";
        dr["quantity"] = "100";

        dt.Rows.Add(dr);

        dr = dt.NewRow();
        dr["id"] = "2";
        dr["name"] = "laptop";
        dr["quantity"] = "50";

        dt.Rows.Add(dr);

        this.dataGridView1.DataSource = dt;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < dataGridView1.Rows.Count; i++)
        {
            dataGridView1.ClearSelection();
            dataGridView1.Rows[i].Selected = true;

            if (dataGridView1.SelectedCells.Count > 0)
            {
                int selectedrowindex = dataGridView1.SelectedCells[i].RowIndex;

                DataGridViewRow selectedRow = dataGridView1.Rows[selectedrowindex];

                string _name = Convert.ToString(selectedRow.Cells["name"].Value);
                decimal _quantity = Convert.ToDecimal(selectedRow.Cells["quantity"].Value);
                MessageBox.Show("name: " + "quantity: " + _quantity.ToString());
                dataGridView1.Rows[i].Selected = false;
            }
        }
    }
0 голосов
/ 24 октября 2018

ЕСЛИ ВЫ ХОТИТЕ ПОКАЗАТЬ ТОЛЬКО ВЫБРАННЫЕ РЯДЫ СЕТКИ, ПОСЛЕ ЭТОГО ПОПРОБОВАТЬ

foreach (Строки DataGridViewRow в this.dataGridViewX1.Rows)

        {
            if (Rows.Selected)
            {
                MessageBox.Show("NAME: " +Rows.Cells[0].Value +  "Quantity: " + Rows.Cells[1].Value);

            }
        }

ЕСЛИ ВЫ ХОТИТЕ ПОКАЗАТЬ ВСЕ СТРОКИ ДАННЫХ

ТОГДА ИСПОЛЬЗОВАТЬ КОД

foreach (строки DataGridViewRow в this.dataGridViewX1.Rows)

        {
            if (rows.IsNewRow) { }
            else {
                MessageBox.Show(rows.Cells[0].Value.ToString() + "','" + rows.Cells[1].Value.ToString()) ;
                }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...