Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: MSFlexGrid - PopupMenu ??? Добавлено: 14.05.03 03:26  

Автор вопроса:  Justas  | Web-сайт: justas.newmail.ru | ICQ: 259418212 
Подскажите пожалуйста,  КАК сделать PopupMenu на MSFlexGrid?
т.е. надо по правому клику мыши - выделить строку, и показать над ней PopupMenu.

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #1
Добавлено: 15.05.03 09:55

   HELP!!! Не ужели ни кто не делал сабж_а? Ведь часто надо-бы (мне по крайней мере). - Удобно записи удалять да и вообще...

Может АПЯ_ми какими?  

Ответить

Номер ответа: 2
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #2 Добавлено: 15.05.03 12:24

На форму положи MSFlexGrid. Создай меню myMnu с двумя пунктами: mnuItem1 и mnuItem2.
В код формы вставь следующее:

Option Explicit

 

Private Sub MSFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)

  Dim i As Integer, leftCol As Integer, rowSel As String, st As String

 

  ' отслеживаем, по какому столбцу пришёлся щелчок:

  For i = 0 To MSFlexGrid1.Cols - 1

    If MSFlexGrid1.ColPos(i) < x Then

      leftCol = i

    Else

    End If

  Next i

  st = "Колонка:" + Str(leftCol) + ";  "

 

  ' Т.к. в результате вертикального скроллинга первый (non-fixed) ряд может "уехать" вверх,

  ' то надо определить младший из всех видимых рядов (он будет верхним - сразу под нулевым):

  For i = 1 To MSFlexGrid1.Rows - 1

    If MSFlexGrid1.RowIsVisible(i) Then Exit For

  Next i

 

  If y < MSFlexGrid1.RowPos(i) Then

    rowSel = "Нулевой"

    st = st + "Ряд: " + rowSel

  ElseIf y >= MSFlexGrid1.RowPos(1) Then

    rowSel = "Ненулевой"<

Ответить

Номер ответа: 3
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #3
Добавлено: 16.05.03 03:26

Спасибо!

Конечно надо номер строки узнавать, но уже есть в какую сторону подумать. Придумаю - напишу. И как-бы ещё сделать так, что-бы строка при этом выделялась?

Может у кого-нибудь ещё есть идеи?

Ответить

Номер ответа: 4
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #4 Добавлено: 16.05.03 12:05

With MSFlexGrid1

    .Row = selectedRow

    .Col = 0

    .RowSel = selectedRow

    .ColSel = .Cols - 1

End With

 

Ответить

Номер ответа: 5
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #5 Добавлено: 16.05.03 12:06
Забыл написАть, что этот код надо вставить в событие MSFlexGrid1_MouseUp.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам