С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
6 / 6 / 3
Регистрация: 07.04.2015
Сообщений: 123

Получение значения из ячейки DataGridView

22.10.2015, 20:21. Показов 2158. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть DataGrid с двумя колонками и строками заполненными координатами, как программно перенести данные из datagrid в код "координаты"?
VB.NET
1
2
3
Dim grap As Graphics = PictureBox1.CreateGraphics
Dim pn As New Pen(Color.DarkSlateBlue, 1)
grap.DrawPolygon(pn, координаты)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.10.2015, 20:21
Ответы с готовыми решениями:

Получение значения ячейки DataGridView до ее изменения
В программе в DataGridView применяется метод DataGridView.CellValueChanged, который позволяет собирать все изменения (и ручные и...

Получение содержимого ячейки DataGridView при клике на ней
При нажатии на ячейку в DataGridView в другом PictureBox выводила кортику об этой ячейки

Получение строкового значения текущей ячейки
Возможно, проблема пустяковая и многим знакома, но я столкнулся с ней впервые и не знаю как решить. Есть процедура, обрабатывает событие...

9
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
22.10.2015, 20:45
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

DataGrid или DataGridView?

Для DataGridView
VB.NET
1
2
3
4
5
6
7
8
        Dim grap As Graphics = PictureBox1.CreateGraphics
        Dim pn As New Pen(Color.DarkSlateBlue, 1)
        Dim points() As Point
        ReDim points(0 To DataGridView1.RowCount - 1) ' нужно учитывать строку для добавления новых строк. Если есть, то нужно ввести ReDim points(0 To DataGridView1.RowCount-2)
        For i As Integer = 0 To UBound(points)
            points(i) = New Point(CType(DataGridView1.Item(0, i).Value, Integer), CType(DataGridView1.Item(1, i).Value, Integer))
        Next
        grap.DrawPolygon(pn, points)
Если DataGrid, то там тоже самое, только без .Value
4
6 / 6 / 3
Регистрация: 07.04.2015
Сообщений: 123
22.10.2015, 20:55  [ТС]
Отлично, единственное, у меня первая точка задается координатами 0,0
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
22.10.2015, 21:07
Ну это на ваше усмотрение. Сдвинуть диапазон и размер массива можно без проблем.
Я только предположил и пример показал.
1
6 / 6 / 3
Регистрация: 07.04.2015
Сообщений: 123
22.10.2015, 21:20  [ТС]
А как сдвинуть, я только начинаю разбираться в vb?
Уменя получается строить полигон через точку 0,0, а надо между точками
Миниатюры
Получение значения из ячейки DataGridView  
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
22.10.2015, 22:01
А координаты относительно чего берутся? Окна бокса или всего окна?

Добавлено через 6 минут
VB.NET
1
2
3
    Private Sub PictureBox1_Click(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseClick
        Me.DataGridView1.Rows.Add(e.X, e.Y)
    End Sub
И куданибудь добавь кнопку с
VB.NET
1
Me.Refresh()
Что бы линии чистить
0
6 / 6 / 3
Регистрация: 07.04.2015
Сообщений: 123
23.10.2015, 15:58  [ТС]
Сделал как подсказали, все равно рисует от нулевых координат.
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
23.10.2015, 18:49
' нужно учитывать строку для добавления новых строк. Если есть, то нужно ввести ReDim points(0 To DataGridView1.RowCount-2)
Невнимательно читаем
0
6 / 6 / 3
Регистрация: 07.04.2015
Сообщений: 123
24.10.2015, 07:45  [ТС]
Я правильно понял, фраза если есть относится к "если есть строка с координатами"? В таком случае, строки у меня нет, а код команды выглядит так:ReDim points(0 To DataGridView1.RowCount - 1) . Ситуация та же ((((
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
24.10.2015, 14:33
Неа . В DataGridView есть опция возможности пользователям добавлять новые строки, по умолчанию она включена.
Именно поэтому появляются нулевые координаты, т.к. строка пустая, а CType(...,Integer) преобразовывает пустую строку в 0.
Поэтому надо
VB.NET
1
ReDim points(0 To DataGridView1.RowCount - 2)
Чтобы выключить ее, нужно либо в конструкторе в настройках грида AllowUserToAddRows выставить False, либо в код при инициализации внести
VB.NET
1
DataGridView1.AllowUserToAddRows = False
Тогда надо будет
VB.NET
1
ReDim points(0 To DataGridView1.RowCount - 1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2015, 14:33
Помогаю со студенческими работами здесь

DataGridView копирование значения ячейки при условии
Всем привет! =) Необходимо замутить такую фишку:если в DataGridView4 в первом столбце он находит дубликат в DataGridView1(в первом...

Индекс выбранной ячейки DataGridView при смене ячейки через Tab
Добрый день, Коллеги! Подскажите, как получить индекс ячейки в DataGridWiew, находящейся в фокусе (выбранной ячейки) при переходе по...

Какое использовать события в datagridview, чтобы значения из combobox обновлялись в datagridview
Всем привет.Нужна помощь по следующему вопросу.В datagridview загружаются значения из двух разных таблиц.Одно из полей datagridview это...

Получение значения текущей ячейки DataGridView по columnName
Ситуация следующая: Есть DGV, который настроен на соединение с данными через bindingSource. Настройку DGV произвел через визуальный...

Получение значения ячейки из определенной колонки в DataGridView
Здравствуйте, хотел бы узнать каким образом можно получить значение ячейки из определенной колонки. К примеру: Как я могу получить...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru