Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/55: Рейтинг темы: голосов - 55, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 17.02.2016
Сообщений: 23

Добавление содержимого List<> на DataGridView

29.03.2018, 22:50. Показов 10341. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Мне нужно сделать, чтоб пользователь вводил в TextBox'ы данные, они сохранялись в списке и добавлялись на DataGridView. Добавление в список я сделал, а вот как из списка данные вывести на DataGridView не знаю.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Collections.Generic;
using System.Windows.Forms;
 
namespace TransportSchedule
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        public struct Transport
        {
            public string cityDeparture;
            public string cityDestination;
            public string dateDeparture;
            public string dateDestination;
            public double price;
 
            public Transport(string cityDeparture, string cityDestination, string dateDeparture, string dateDestination, double price)
            {
                this.cityDeparture = cityDeparture;
                this.cityDestination = cityDestination;
                this.dateDeparture = dateDeparture;
                this.dateDestination = dateDestination;
                this.price = price;
            }
        }
 
        List<Transport> transList = new List<Transport>();
 
        private void addButton_Click(object sender, EventArgs e)
        {
            Transport transport = new Transport(cityDepartureBox.Text, cityDestinationBox.Text, dateDepartureBox.Text, dateDestinationBox.Text, Double.Parse(priceBox.Text));
            transList.Add(transport);
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2018, 22:50
Ответы с готовыми решениями:

Динамическое добавление и отображение строки в DataGridView, который привязан к List<myClass>
При добавлении в список нового значения, dataGridView1.DataSource также обновляется, но не отображается на форме. Как это исправить?

Добавление содержимого List к другому List
Здравствуйте уважаемые. Имеется коллекция: List&lt;Product&gt; tempListProducts = new List&lt;Product&gt;(); можно ли как-то через linq или...

Добавление строк и элементов в коллекцию для коллекций <List<List<T>
Доброго времени суток , никак не могу добавить строку в коллекцию коллекций . У меня нет определенного количества данных . Могли б...

7
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
29.03.2018, 22:58
Шмонько Богдан,
В структуре вместо полей используйте автосвойства:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public struct Transport
{
    public string CityDeparture { set; get; }
    public string CityDestination { set; get; }
    public string DateDeparture { set; get; }
    public string DateDestination { set; get; }
    public double Price { set; get; }
 
    public Transport(string cityDeparture, string cityDestination, string dateDeparture, string dateDestination, double price)
    {
        this.CityDeparture = cityDeparture;
        this.CityDestination = cityDestination;
        this.DateDeparture = dateDeparture;
        this.DateDestination = dateDestination;
        this.Price = price;
    }
}
Теперь отобразить данные в DGV можно одной строкой:
C#
1
dataGridView1.DataSource = transList;
1
0 / 0 / 0
Регистрация: 17.02.2016
Сообщений: 23
29.03.2018, 23:07  [ТС]
Я попробовал так сделать, но мой DataGridView так и остался пустым
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
29.03.2018, 23:18
Цитата Сообщение от Шмонько Богдан Посмотреть сообщение
Я попробовал так сделать, но мой DataGridView так и остался пустым
Всё проверено. Всё стреляет:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public partial class Form1 : Form
{
 
    public Form1()
    {
        InitializeComponent();
    }
 
    List<Transport> transList = new List<Transport>();
    private void button1_Click(object sender, EventArgs e)
    {
        Transport transport = new Transport((transList.Count+1).ToString(), "fndfg", "fhjmfhj", "gk,ghj", 3.14);
        transList.Add(transport);
        dataGridView1.DataSource = null;
        dataGridView1.DataSource = transList;
    }
 
}
 
public struct Transport
{
    public string CityDeparture { set; get; }
    public string CityDestination { set; get; }
    public string DateDeparture { set; get; }
    public string DateDestination { set; get; }
    public double Price { set; get; }
 
    public Transport(string cityDeparture, string cityDestination, string dateDeparture, string dateDestination, double price)
    {
        this.CityDeparture = cityDeparture;
        this.CityDestination = cityDestination;
        this.DateDeparture = dateDeparture;
        this.DateDestination = dateDestination;
        this.Price = price;
    }
}
1
0 / 0 / 0
Регистрация: 17.02.2016
Сообщений: 23
29.03.2018, 23:31  [ТС]
Да, действительно все работает, не то сделал по ошибке. У меня еще такой вопрос: а как теперь изменить заголовки колонок и первой колонкой в DataGridView сделать номер строки?
0
18 / 18 / 8
Регистрация: 24.01.2014
Сообщений: 92
30.03.2018, 04:09
DataGrid.Columns.Header = "твоё название"
и AutoGenerateColumns = false чтобы колонки сами не создавались
1
0 / 0 / 0
Регистрация: 17.02.2016
Сообщений: 23
30.03.2018, 20:41  [ТС]
wlada, а не могли бы Вы, пожалуйста, подсказать, как первым столбцом добавить нумерацию строк?
0
18 / 18 / 8
Регистрация: 24.01.2014
Сообщений: 92
31.03.2018, 06:34
Добавить индекс в структуру Transport

или через RowPostPaint

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
        {
            var grid = sender as DataGridView;
            var rowIdx = (e.RowIndex + 1).ToString();
 
            var centerFormat = new StringFormat()
            {
                Alignment = StringAlignment.Center,
                LineAlignment = StringAlignment.Center
            };
            
            var headerBounds = new Rectangle(e.RowBounds.Left, e.RowBounds.Top, grid.RowHeadersWidth, e.RowBounds.Height);
            e.Graphics.DrawString(rowIdx, this.Font, SystemBrushes.ControlText, headerBounds, centerFormat);
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.03.2018, 06:34
Помогаю со студенческими работами здесь

Ошибка трансляции List<List<string>> в DataGridView
Нужно вот такой список List&lt;List&lt;string&gt;&gt; отобразить в DataGridView Вот моя реализация. public int w { get; set; } ...

Сравнение содержимого двух List - ов
Проблема вот в чем, есть два List - a, только у одного размерность на много больше другого, как сделать так, что бы каждый элемент первого...

Как сравнить два List<T> по значению содержимого?
Всем привет! Есть два List&lt;T&gt; параметризированных моим классом. Первый лист формируется на сервере WCF и передается клиенту на WinForm...

Контейнер list, вывод содержимого в заданном порядке
Как с помощью двунаправленных итераторов вывести содержимое списка в таком порядке: первый эл-т,последний,второй эл-т,предпоследний и...

Сохранение содержимого Watch List при закрытии проекта
Как сохранить все переменные в Watch list (отладка), чтобы при следующем открытии проекта их не приходилось заполнять заново? C++ builder...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru