Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: filat от 11-01-2021, 10:19:20

Название: Пробел вызывает повторное открытие формы
Отправлено: filat от 11-01-2021, 10:19:20
Даже и не знаю, на какой форум стоит обращаться с возникшей проблемой...
Есть AddIn, в котором, по нажатию кнопки прописан вызов формы:
Код - vb.net [Выбрать]
  1.         Private Sub Button_38_Titl(ByVal context As NameValueMap)
  2.             m_inventorApplication.SilentOperation = False
  3.             Dim oTitle1 As Title1
  4.             oTitle1 = New Title1
  5.             oTitle1.dDoc = CType(m_inventorApplication.ActiveDocument, _DrawingDocument)
  6.             oTitle1.m_inventorApplication = m_inventorApplication
  7.             oTitle1.Show()
  8.         End Sub
После открытия вызываемой формы, если нажать клавишу "Пробел", то происходит повторный вызов формы!!!  :o :-X :'(
В самой форме нет ни то что отработчиков событий, а вообще ничего - пустое окно кода:
Код - vb.net [Выбрать]
  1. Imports Inventor
  2. Imports Microsoft.Win32
  3. Imports System.Windows.Forms
  4. Imports System
  5.  
  6.  
  7. Public Class Title1
  8.     Public dDoc As Inventor._DrawingDocument
  9.     Public m_inventorApplication As Inventor.Application
  10.     Private OBOZ As String = ""
  11.  
  12.     Private Sub Title1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  13.        
  14.     End Sub
  15.  
  16. End Class
Как понять, что за функция привязалась к клавише "Пробел" и, главное!!! - как это заблокировать?
Название: Re: Пробел вызывает повторное открытие формы
Отправлено: mikazakov от 11-01-2021, 10:36:30
если нажать клавишу "Пробел", то происходит повторный вызов формы!!! 
Вот дак чудо :)))... на самом деле это просто инвентор последнюю команду твою выполняет когда на пробел жмешь, а к последней команде твоя форма привязана.
Название: Re: Пробел вызывает повторное открытие формы
Отправлено: filat от 11-01-2021, 10:38:16
было такой подозрение...
А как очищать список, чтоб не было повтора?
Название: Re: Пробел вызывает повторное открытие формы
Отправлено: mikazakov от 12-01-2021, 11:03:01
А как очищать список, чтоб не было повтора?
Никак.
Название: Re: Пробел вызывает повторное открытие формы
Отправлено: filat от 12-01-2021, 11:31:58
А отключить горячие клавиши или переназначить программно?
Название: Re: Пробел вызывает повторное открытие формы
Отправлено: mikazakov от 13-01-2021, 19:24:20
не знаю мож тебе это поможет через PreProcessMessage:
https://docs.microsoft.com/ru-ru/dotnet/desktop/winforms/input-keyboard/how-to-change-key-press?view=netdesktop-5.0
Название: Re: Пробел вызывает повторное открытие формы
Отправлено: mikazakov от 13-01-2021, 19:34:49
https://studassistent.ru/charp/zapret-nazhatiya-klavish-v-opredelennom-processe-c
Название: Re: Пробел вызывает повторное открытие формы
Отправлено: filat от 14-01-2021, 10:28:03
К сожалению e.Handled = True прерывает только внутри данной программы и не затрагивает нажатие кнопки для других программ в системе.
А вторая ссылка только формулирует задачу, но я не вижу там ответов подсказывающих возможные способы решения.
Название: Re: Пробел вызывает повторное открытие формы
Отправлено: mikazakov от 14-01-2021, 10:43:05
Там еще есть хуки,
https://www.cyberforum.ru/csharp-net/thread628027.html

но тонкостей не подскажу, потому как никогда не работал с этим