Создавать несколько datagridview с единственной кнопкой

У меня есть 4 списка, которые наполняются с поступающими данными пользователя, этими, меня наполняют данные колонна в колонну в datagridview, который звонил бы datagridview1, я считаю это предопределенным в моем главном form, у меня есть кнопка, которая показывает мне всю стоимость, выбранную пользователем в этом datagrid, моей проблеме, дело в том, что я хочу произвести несколько datagrid view с другой кнопкой (сначала одна, потом другая и потом другая), главным образом чтобы мочь сравнивать выборы, выбранные пользователем для depsues посылать их в Excel, что мне не удается отобразить, - это как делание цикла или как определять некоторые и ссылаться между datagrids, чтобы производить различно и в конце концов все мочь отображать их.

Часть моего кода идет так:

//En este punto los valores ya se encuentran cargados en las listas Valores, cantidades, codigos y proces.
//Al evento de presionar el boton...
private void btAddOp_Click(object sender, EventArgs e){
//Aqui agrego tantas filas como  datos disponibles
dataGridView1.Rows.Add(valores.Count()); 

//Con este ciclo relleno cada columna de la tabla
for (int i = 0; i < valores.Count; i++){
    dataGridView1.Rows[i].Cells[3].Value = valores[i];
    dataGridView1.Rows[i].Cells[1].Value = cantidades[i];
    dataGridView1.Rows[i].Cells[0].Value = codigos[i];
    dataGridView1.Rows[i].Cells[2].Value = proces[i];
    }
}

И чтобы мочь производить таблицу в таблицу, я думаю, что оно было бы чем-то сходным с этим:

private void btAddOp_Click(object sender, EventArgs e){
........
........
........
DataGridView dgv = new DataGridView();
dgv = dataGridView1;
??????;

Здесь он, где уже я теряюсь и требую путеводителя или маленького примера, даже я не понимаю совсем концепции datagrid, datatable и dataset, что я думаю, что они пришли бы ко мне из жемчужин сюда, у меня есть мало с C# и я это изучаю из-за моего счета, любой гид, чтобы знать, как продолжать или какой-то пример будет втречен с радостью и очень оценен. PD. Прощение, если я повторяю вопрос, не мое намерение делать SPAM я искал на английском и на испанском языке, но мне не удается понять, как мочь оставаться.

0
задан 25.07.2019, 22:12
1 ответ

ВїQue - DataGrid ?

Это Ваши различий относительно Вашего преемника DataGridView

Ясное резюме соединения, которое ты ofrecГ - состоит в том, что контроль DataGrid - та versiГіn архаическая контроля DataGridView

DataSet и DataTable

DataSet, закончило бы тем, что было бы тем, что известно как база данных. могут сохранять tablas, relaciones, rules, datatables... и т.д.

DataTable - просто таблица, которая хранит informaciГіn какой-то query или ручной формы.

Сейчас относительно твоей проблемы, что ты queres (SegГєn entendГ-) состоит в том, чтобы создавать контроль DataGridView n из раз с единственной кнопкой.

, Чтобы этого добиваться, мы пойдем шаг за шагом.

Мы Импортируем книжный магазин forms, чтобы соглашаться на контроль

//Al inicio de tu codigo.
using System.Windows.Forms;

Объявляем новую инстанцию контроля как будто это была переменная

//Esta declaración la instanciaremos dentro del for para que se vuelva reutilizable y dinamica.
DataGridView _dgv1 = new DataGridView();

Я восхожу: Благодаря этому заявлению на уровне блока for мы можем reutilizarla так часто давайте нуждаться в ней, если вместо того, чтобы делать этим instanciabamos вне блока всегда Г-bamos, чтобы работать с тем же самым DataGridView и поэтому Г-bamos, чтобы иметь 1 единственный видимый тип контроля. Я приглашаю тебя к тому, чтобы ты сделал доказательство для того, чтобы ты понял более основательно важность заявлений.

В ней funciГіn

//Los parametros son el entero que servira de veces para recorrer el for y 
//un form para que se pueda reutilizar en todos los forms que quieras.
void GenerarDgv(int _CantidadDeDgv, Form _this)
    {
        //un for que recorra la cantidad de veces que se requiera.
        for (int i = 0; i < _CantidadDeDgv; i++)
        {
            Declaramos el control.
            DataGridView _dgv1 = new DataGridView();

            //Especificamos en que form crearemos el control
            _dgv1.Parent = _this;
            //Asignamos un nombre para el control
            _dgv1.Name = "_dataGridView" + i;
            //Le asignamos la ubicación en el form (Point pide dos parámetros, ambos enteros. el primero de  de posición  del eje "X" y el segundo de posición del eje "Y"
            _dgv1.Location = new Point(i * 25, 25);
            //Tamaño de ancho por largo del DataGridView
            _dgv1.Size = new Size(50, 50);
        }
    }

Восходил: Как края, свойства DataGridview, которые он называет, - те же самые, что те панели свойств, которые ты распределяешь ему с diseГ±o form

introducir la descripción de la imagen aquí

, Как тебе это снова отметил Name, Location и Size - свойства, которые он использует с cГіdigo, чтобы давать ему формат. AsГ - как дела обрежь использовать все те, кто появляются в списке, чтобы манипулировать 100 % до того, чтобы удовлетворять твою необходимость.

Мы Называем в нее funciГіn с события click botГіn

private void Button1_Click(object sender, EventArgs e)
    {
       //En este caso le asigno que se creen 5 DataGridView's y el form que le asigno es el actual mediante la palabra reservada [this] que lo que hace es reverenciar a la clase actual. osea, al form que se esta programando en otras palabras...
        GenerarDgv(5, this);
    }

И с этим уже ты идешь создавать количество DataGridView, которые ты хотел бы внутри того же самого form. сейчас твоя работа состоит в том, чтобы точно подходить в твое средство Location и Size для того, чтобы он влез согласно твоим требованиям в твою работу.

0
ответ дан 01.12.2019, 23:05

Теги

Похожие вопросы