глупый вопрос про координаты меню

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

cooler
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 90
Зарегистрирован: 09.08.2004 (Пн) 4:58
Откуда: Che sity

глупый вопрос про координаты меню

Сообщение cooler » 07.08.2007 (Вт) 21:55

вобщем кликаю по DataGridView и надо чтоб менюшка рядом с мышкой выскакивала, не могу разобраться с координатами... раньше в вб6 было попроще с координатами как-то... :? :(
Windows написанна с применением искусственного интеллекта. И как любое разумное существо старается работать как можно меньше :))

Kuzmit4
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 29.05.2007 (Вт) 17:05

Сообщение Kuzmit4 » 08.08.2007 (Ср) 12:34

Создай ContextMenuStrip1 и в свойствах datagridView ContextMenuStrip укажи ContextMenuStrip1

cooler
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 90
Зарегистрирован: 09.08.2004 (Пн) 4:58
Откуда: Che sity

Сообщение cooler » 08.08.2007 (Ср) 12:55

ok, пасиб огромное!!!
Windows написанна с применением искусственного интеллекта. И как любое разумное существо старается работать как можно меньше :))

cooler
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 90
Зарегистрирован: 09.08.2004 (Пн) 4:58
Откуда: Che sity

Сообщение cooler » 08.08.2007 (Ср) 13:00

ой, нет так не катит! у меня теперь не обрабатывается код на событие results_CellMouseClick (results это и есть датагрид) :( он там должен в зависимости от номера ячейки лочить некоторые менюшки... лишние переменные не хотелось бы вводить, думаю можно как-то с координатами правильно сделать....
Windows написанна с применением искусственного интеллекта. И как любое разумное существо старается работать как можно меньше :))

Kuzmit4
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 29.05.2007 (Вт) 17:05

Сообщение Kuzmit4 » 08.08.2007 (Ср) 14:50

Если тебе надо отловить координаты ячейки на которой было вызвано конекстное меню то использую событие DataGridView1_CellToolTipTextNeeded
(единственное у меня это не отрабатывало пока не сделал привязку грида к датасету, хотя может я чего недоглядел...)

а можно каждой ячейке привязать свое контекстное меню
DataGridView1.Rows(0).Cells(0).ContextMenuStrip = ContextMenuStrip1

обрисуй задачу подробнее

cooler
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 90
Зарегистрирован: 09.08.2004 (Пн) 4:58
Откуда: Che sity

Сообщение cooler » 08.08.2007 (Ср) 15:07

ok, попробую. ща просто тороплюсь на работу, там и опробую код. о задаче - есть пустые клетки и на них 0-й элемент менюшки должен быть enabled=false а на заполненных true
Windows написанна с применением искусственного интеллекта. И как любое разумное существо старается работать как можно меньше :))

cooler
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 90
Зарегистрирован: 09.08.2004 (Пн) 4:58
Откуда: Che sity

Сообщение cooler » 08.08.2007 (Ср) 18:31

по идее вообще должно быть типа вот этого в событии _CellMouseClick
Код: Выделить всё
ContextMenuStrip1.Show(e.Location)
а он показывает менюшку непонятно где!!! :(
может конечно нужно так:
Код: Выделить всё
ContextMenuStrip1.Show(results, e.X, e.Y)
или даже к ним прибавлять results.top/left.... я уж по всякому пробовал....
мне бы желательно ее показывать именно таким образом...
Windows написанна с применением искусственного интеллекта. И как любое разумное существо старается работать как можно меньше :))

Kuzmit4
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 29.05.2007 (Вт) 17:05

Сообщение Kuzmit4 » 09.08.2007 (Чт) 9:47

а чем не устраивает DataGridView1_CellToolTipTextNeeded?
тут получаешь координаты ячейки и дальше проверяй данные в ней и обрабатывай меню

cooler
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 90
Зарегистрирован: 09.08.2004 (Пн) 4:58
Откуда: Che sity

Сообщение cooler » 09.08.2007 (Чт) 10:34

я сделал немного по-другому - на событие cell_mousemove я пишу в глобальную переменную индексы ячейки. а дальше при ContextMenuStrip1_open просто проверяю то, что нужно. Но всеже интересно почему криво получается с координатами....
Windows написанна с применением искусственного интеллекта. И как любое разумное существо старается работать как можно меньше :))

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 12.08.2007 (Вс) 2:20

cooler писал(а):я сделал немного по-другому - на событие cell_mousemove я пишу в глобальную переменную индексы ячейки. а дальше при ContextMenuStrip1_open просто проверяю то, что нужно. Но всеже интересно почему криво получается с координатами....


А как ты думуешь с какой точки твое меню отчитывает координаты?
Ты получаешь координаты от верхнего левого края формы и задаеш их при вызове меню, вот оно и смешяется.
Хотя я могу ошибатся. Выложи код и все будет ясно.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.08.2007 (Вс) 2:33

Время от времени в глубинах Вселенной случается что-то, и на форум снова заходит temur и снова постит бесполезный пост, или сразу несколько, в соседние топики... Он не читает вопросов и уж тем более уже запощенных ответов, ведь иначе пост может получиться хоть немного полезным...


А всем отписавшимся в топике вопрос -- что будет, если вывести меню, не указывая координаты вообще?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 12.08.2007 (Вс) 5:27

Оскорблять не надо GSerg, считаешь пост бесмысленным или неуместным сотри, на то ты и модератор, а оскорблять не стоит. :evil:

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 12.08.2007 (Вс) 6:54

Дело в том, что на этом форуме принято поступать несколько иначе. И бессмысленные бредовые сообщения здесь не удаляют. Удаляют сообщения, нарушающие правила - и то не всегда.

Однако GSerg видит суть своей работы отчасти в том, чтобы "откровенную помечать таковой, дабы читающим стало яснее".
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Сообщение 1Steps » 12.08.2007 (Вс) 7:09

А всем отписавшимся в топике вопрос -- что будет, если вывести меню, не указывая координаты вообще?
Я в топике не отписывался, но тут же создал тестовый прозкт. Сделал так как сказал Kuzmit4 и всё работает великолепно. Менюшка выскакивает рядом с местом на котором кликаешь.

Private Sub DataGridView1_CellContextMenuStripNeeded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellContextMenuStripNeededEventArgs) Handles DataGridView1.CellContextMenuStripNeeded

DataGridView1.Rows(CurrentRecord).ContextMenuStrip = ContextMenuStrip1 (у меня FullRowSelect)

End Sub
Удалена за ненадобностью.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.08.2007 (Вс) 18:53

temur писал(а):считаешь пост бесмысленным или неуместным сотри

Так пытался :(
Уже сколько раз за больше чем год ты постил всякую чушь, на которую я смотрел, смотрел, потом думал -- не, и удалял. Дык не помогает :(

temur писал(а):а оскорблять не стоит. :evil:

Я туда оскорблений не помещал. Только описание самого поста, а также его историческую ретроспективу.
Ну правда, нафига просить выложить код, если простое прочтение топика покажет, что код уже выложен?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 13.08.2007 (Пн) 10:47

GSerg писал(а):Так пытался :(
Уже сколько раз за больше чем год ты постил всякую чушь, на которую я смотрел, смотрел, потом думал -- не, и удалял. Дык не помогает :(


Да ладно было это всего раза три считая этот пост. Ну и ладно забыли. уж слишком уж в офтопик пошли.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 72

    TopList