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

Как отсортировать DataGridView

13.11.2022, 14:32. Показов 9246. Ответов 31

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня есть такая проблема с DataGridView и сортировкой строк. На скрине я ввёл рандомные числа и отсортировал их, но отсортировались они почему то только по первому символу. Затем я создал отдельную кнопку и прописал там:
C#
1
dataGridView1.Sort(dataGridView1.Columns[2], ListSortDirection.Descending);
. Результат не поменялся совсем. Благодаря интернетам вспомнил про метод пузырька, но нет не сил, не преставления, как его сюда интегрировать. Скажите пожалуйста как я могу нормально отсортировать числа от большего к меньшему в DataGridView. Ну и если можно то как от меньшего к большему
Миниатюры
Как отсортировать DataGridView   Как отсортировать DataGridView  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2022, 14:32
Ответы с готовыми решениями:

Как отсортировать данные в DataGridView
Ребят, возникла трудность, в DataGridView необходимо вывести отсортированую таблицу., выводит исходную public partial class FormView :...

Массив, введенный в DataGridView, отсортировать и записать в тот же DataGridView
Здравствуйте, у меня проблема такая. Есть программа в которой заполняется DataGridView массив который нужно отсортировать и заполнить в тот...

Как отсортировать список в колонке datagridview.combobBox в соответствии с пунктом выбранным в comboBox1
Имеется: combobox1 со списком заказчиков. и datagridview1 в котором есть колонка с типом comboBox. Есть база данных с таблицами...

31
0 / 0 / 0
Регистрация: 13.11.2022
Сообщений: 22
15.11.2022, 13:50  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Kazbek17 Посмотреть сообщение
Че-т я тоже попробовал такой способ но он у меня не отрабатывает.
Потому что, мы хоть и конвертировали в дабл, но конвертировали в рамке переменной. Сама ячейка со стрингом так и осталась
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,755
Записей в блоге: 4
15.11.2022, 13:53
Nkti, Вот такой компаратор сортирует любые строки с числами как надо
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
39
40
41
42
43
44
45
46
47
48
49
using System;
using System.Collections.Generic;
 
namespace DALibrary.Services
{
    internal class NaturalStringComparer : IComparer<string>
    {
        public int Compare(string x, string y)
        {
            x = x.ToLower();
            y = y.ToLower();
 
            if (string.Compare(x, 0, y, 0, Math.Min(x.Length, y.Length)) == 0)
            {
                if (x.Length == y.Length)
                {
                    return 0;
                }
 
                return x.Length < y.Length ? -1 : 1;
            }
            var a = RegExHelper.regexNumericString.Split(x);
            var b = RegExHelper.regexNumericString.Split(y);
            int i = 0;
 
            while (true)
            {
                int r = PartCompare(a[i], b[i]);
 
                if (r != 0)
                {
                    return r;
                }
 
                ++i;
            }
        }
 
        private int PartCompare(string x, string y)
        {
            if (int.TryParse(x, out int a) && int.TryParse(y, out int b))
            {
                return a.CompareTo(b);
            }
 
            return x.CompareTo(y);
        }
    }
}
Добавлено через 2 минуты
Nkti, Вспомогательный класс с регулярками
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System.Text.RegularExpressions;
 
namespace DALibrary.Services
{
    /// <summary>
    /// Статический класс для определения регулярных выражений.
    /// </summary>
    internal static class RegExHelper
    {
        private static readonly string _numericString = @"(?<=\D)(?=\d)|(?<=\d)(?=\D)";
 
        internal static readonly Regex regexNumericString = new Regex(_numericString, RegexOptions.Compiled);
    }
}
1
0 / 0 / 0
Регистрация: 13.11.2022
Сообщений: 22
15.11.2022, 13:53  [ТС]
Kazbek17, таже ошибка
0
 Аватар для Kazbek17
1485 / 939 / 455
Регистрация: 06.02.2012
Сообщений: 2,870
15.11.2022, 13:55
Nkti, Кидайте сюда свой проект.
0
0 / 0 / 0
Регистрация: 13.11.2022
Сообщений: 22
15.11.2022, 14:00  [ТС]
Kazbek17, Andrey-MSK, Вот парни гляньте чё тут происходит
Вложения
Тип файла: rar yeah.rar (65.8 Кб, 5 просмотров)
0
 Аватар для Kazbek17
1485 / 939 / 455
Регистрация: 06.02.2012
Сообщений: 2,870
15.11.2022, 14:09
Nkti,
В кнопку сортировки вставьте
C#
1
2
3
4
5
6
7
8
9
10
            List<int> list = new List<int>();
            for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
            {
                list.Add(int.Parse(dataGridView1[2, i].Value.ToString()));
            }
            list.Sort((a, b) => b.CompareTo(a));
            for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
            {
                dataGridView1[2, i].Value = list[i];
            }
1
0 / 0 / 0
Регистрация: 13.11.2022
Сообщений: 22
15.11.2022, 14:14  [ТС]
Цитата Сообщение от Kazbek17 Посмотреть сообщение
В кнопку сортировки вставьте
МНЕ КАЖЕТСЯ ИЛИ ОНО РАБОТАЕТ
0
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
15.11.2022, 14:15
Цитата Сообщение от Kazbek17 Посмотреть сообщение
Че-т я тоже попробовал такой способ но он у меня не отрабатывает.
Код проверен. Убедитесь, что e.Handled = true;
1
0 / 0 / 0
Регистрация: 13.11.2022
Сообщений: 22
15.11.2022, 14:22  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
Код проверен. Убедитесь, что e.Handled = true;
Всё работает, он сортирует, но отсюда выскочила другая проблема(
Он сортирует по столбику вклад, и съезжают значения Названия параметра и его номерKazbek17, Andrey-MSK,

Добавлено через 1 минуту
Uswer, Глянь пожалуйста ответ выше
0
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
15.11.2022, 14:24
Цитата Сообщение от Nkti Посмотреть сообщение
съезжают значения Названия параметра и его номер
Ознакомьтесь с тем, как делается многофакторная сортировка. Там же обратите внимание, что в случае приведённого мной обработчика события к сетке не должен быть привязан источник данных.
0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,755
Записей в блоге: 4
15.11.2022, 14:29
Nkti, Сортировка в источнике данных, с помощью компаратора, производится так
C#
1
2
3
4
reports = reports
    .OrderBy(r => r.DNumber, new NaturalStringComparer())
    .ThenBy(r => r.DrawSystemSheet, new NaturalStringComparer())
    .ToList();
0
 Аватар для Kazbek17
1485 / 939 / 455
Регистрация: 06.02.2012
Сообщений: 2,870
15.11.2022, 14:32
Цитата Сообщение от Nkti Посмотреть сообщение
Он сортирует по столбику вклад, и съезжают значения Названия параметра и его номер
Под понятием сортировка, это значит все столбцы сортируются по определенному условию. Если вклады отсортировались, тогда и другие стоблцы будут затронуты. Если вам так не нужно, то можете использовать код который я вам дал выше, но тогда вклады после сортировки не будут соответствовать каждый своему пункту.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.11.2022, 14:32

Как отсортировать DataGridView по полям подстановки?
Есть такая таблица. Как отсортировать ее по полям подстановки(2, 3, 4 столбец)?

Как отсортировать и сделать поиск в DataGridView через SQLlite?
вот сам проект. помогите, очень нужно

Отсортировать dataGridView
Как программно понять по возрастанию или убыванию сортируется колонка в DataGridView? Добавлено через 6 минут Нашёл SortOrder...

Отсортировать буквы в DataGridView
Дан текст в textBox1, отсортировать русские буквы в datagrid 1столбец и английские в datagrid 2столбец String ^allText; ...

Отсортировать данные в DataGridView
Здравствуйте. У меня есть DataGridView, который заполняется в ручную. Всего 5 столбцов: имя, фамилия, отчество, адрес и год поступления на...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru