Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2015, 22:50   #1
Xezon
Mazafaka stenograf
Форумчанин
 
Аватар для Xezon
 
Регистрация: 12.01.2012
Сообщений: 229
По умолчанию Выделение ячейки DataGridView когда над ней зависает курсор [VB]

Делаю некое подобие программы конструктора, реализация с помощью на VB через DataGridView. Хотел, чтобы та ячейка над которой висит курсов выделялась, еле-еле наговнокодил с помощью MousePosition, но выделение происходит в других координатах, либо ниже, либо выше, либо Expention Error. Вот процедура DataGridView отвечающая за выделение ячеек в таблице:
Код:
    Private Sub DGV_Cross_MouseMove(sender As Object, e As EventArgs) Handles DGV_Cross.MouseMove
        Dim A, B As Integer
        A = Int(MousePosition.Y / 52 + 3)'Ручная подборка
        B = Int(MousePosition.X / 52 + 3)
        DGV_Cross.Rows(A).Cells(B).Selected = True
        DGV_Cross.Rows(A).Cells(B - 1).Selected = False
        DGV_Cross.Rows(A - 1).Cells(B).Selected = False
        DGV_Cross.Rows(A - 1).Cells(B - 1).Selected = False
        DGV_Cross.Rows(A).Cells(B + 1).Selected = False
        DGV_Cross.Rows(A + 1).Cells(B).Selected = False
        DGV_Cross.Rows(A + 1).Cells(B + 1).Selected = False
    End Sub
Подскажите как сделать более правильнее?
Xezon вне форума Ответить с цитированием
Старый 18.05.2015, 23:27   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Можно так
Код:
    Private Sub DataGridView1_CellMouseLeave(ByVal sender As Object,  _ 
	ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellMouseLeave
        If e.ColumnIndex > -1 Then
            If e.RowIndex > -1 Then

                DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Style.BackColor = Color.White
            End If
        End If
    End Sub
    Private Sub DataGridView1_CellMouseMove(ByVal sender As Object, _
	ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseMove
        If e.ColumnIndex > -1 Then
            If e.RowIndex > -1 Then
                DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Style.BackColor = Color.Red
                DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Selected = False
            End If
        End If

    End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 18.05.2015, 23:32   #3
Xezon
Mazafaka stenograf
Форумчанин
 
Аватар для Xezon
 
Регистрация: 12.01.2012
Сообщений: 229
По умолчанию

doober, большое спасибо, работает=D
Xezon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать таблицу НАД картинкой, а не под ней??? Proger16 HTML и CSS 5 28.04.2013 19:55
Курсор мыши над формой 8adim Общие вопросы Delphi 8 07.02.2011 09:43
курсор над компонентом combobox Alter Общие вопросы Delphi 3 04.02.2011 11:11
как обработать нажатие клавиши когда курсор на объекте? БулатМастер Общие вопросы Delphi 2 28.02.2010 08:08