Это выполнимо, но несколько неудовлетворительно (для меня).Имея какие-либо свойства меню в форме, граница по умолчанию снова станет видимой.Однако есть несколько обходных путей:
1) Метод, который, я думаю, вы предпочтете, включает создание второй формы, которую вы никогда не будете «использовать» или видеть.Поместите меню в эту вторую форму, а затем вызовите это меню из формы, которую вы действительно хотите использовать.Предполагая, что вы используете Form_MouseDown
для вызова этого, вот код:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button And vbRightButton Then PopupMenu Form2.mnuYourMenu
End sub
Однако вам придется помнить, чтобы выгрузить эту вторую форму из памяти.
2) Другой способ, используя только первую форму, можно установить ControlBox
формы False
и оставить свойство Caption
пустым.Это «удаляет» границу, когда BorderStyle
установлен на 0 ... Я поставил remove в кавычках, потому что она, к сожалению, оставит черную линию в 1 пиксель.Это не выглядит плохо, но это не может быть жизнеспособным решением для вас.
3) Последний способ, о котором я читал, но ничего не сделал с собой, это использовать CreatePopupMenu
API, найденный на http://allapi.mentalis.org/apilist/CreatePopupMenu.shtml
Надеюсь, это поможет!