Пробел вызывает повторное открытие формы

Автор Тема: Пробел вызывает повторное открытие формы  (Прочитано 994 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн filatАвтор темы

  • ADN Club
  • ***
  • Сообщений: 211
  • Карма: 2
Даже и не знаю, на какой форум стоит обращаться с возникшей проблемой...
Есть 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
Как понять, что за функция привязалась к клавише "Пробел" и, главное!!! - как это заблокировать?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 605
  • Карма: 157
  • Skype: mikazakov@mail.ru
если нажать клавишу "Пробел", то происходит повторный вызов формы!!! 
Вот дак чудо :)))... на самом деле это просто инвентор последнюю команду твою выполняет когда на пробел жмешь, а к последней команде твоя форма привязана.

Оффлайн filatАвтор темы

  • ADN Club
  • ***
  • Сообщений: 211
  • Карма: 2
было такой подозрение...
А как очищать список, чтоб не было повтора?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 605
  • Карма: 157
  • Skype: mikazakov@mail.ru
А как очищать список, чтоб не было повтора?
Никак.

Оффлайн filatАвтор темы

  • ADN Club
  • ***
  • Сообщений: 211
  • Карма: 2
А отключить горячие клавиши или переназначить программно?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 605
  • Карма: 157
  • Skype: mikazakov@mail.ru


Оффлайн filatАвтор темы

  • ADN Club
  • ***
  • Сообщений: 211
  • Карма: 2
К сожалению e.Handled = True прерывает только внутри данной программы и не затрагивает нажатие кнопки для других программ в системе.
А вторая ссылка только формулирует задачу, но я не вижу там ответов подсказывающих возможные способы решения.

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 605
  • Карма: 157
  • Skype: mikazakov@mail.ru
Там еще есть хуки,
https://www.cyberforum.ru/csharp-net/thread628027.html

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