2016-02-02 9 views
0

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

Возможно ли это/практично это сделать? Если нет/если да, то что мне нужно, чтобы посмотреть и узнать отсюда, чтобы иметь возможность его реализовать? Моя база знаний в программировании ограничена; Я только начинал знакомство с классами.

(Я работаю в Autodesk Inventor и пытаюсь создать окно с кнопками для управления выходом другой программы, которую у меня есть. Чтобы сэкономить на количестве вызовов/интерфейсов, я надеялся просто создайте форму с незашифрованной кнопкой, но скопируйте ее в мою программу/макрос, который у меня есть в Inventor, - это форма с шестью кнопками, которые в конечном итоге вращают некоторые графики внутри программы в определенной точке остановки, а затем программа возобновляется, когда форма замкнута через «х»)

Я видел сообщения, такие, как показано ниже, но это, кажется, не имеют возможности получить ввод данных пользователем: How to create a custom MessageBox?

в настоящее время я m здесь, который работает для показа инструментария. Может ли кто-нибудь показать мне, как я буду обрабатывать события, пожалуйста?

AddReference "C:\Users\Documents\Visual Studio 2013\Projects\WindowsApplication1\WindowsApplication1\bin\Release\SectionSymToolBox.dll" 

Imports System.Windows.Forms 

Public Class SectionSymRule 
'Public dlg As New System.Windows.Forms.For 
Public Shared ToolBox As New SectionSymToolBox.SectionSymToolBox 

Dim WithEvents EClass As New EventClass 

Sub Main() 
    ToolBox.Show() 
End Sub 

End Class 

Public Class SectionSymToolBox 

Private Sub Main() 

End Sub 

Public Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 
    'Swap Symbols 

End Sub 

Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    'Flip Symbol 

End Sub 

Public Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    'Flip Text 

End Sub 

Public Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click 
    '< 

End Sub 

Public Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 
    '> 
End Sub 

End Class 
+0

Вы говорите, что у вас есть макрос VBA в Autodesk Inventor, и вы хотите, чтобы он входил в форму VB.Net? – Blackwood

+0

Макрос закодирован в частичном vb.net во внутренней среде API изобретателя. (он доходит до объявления классов и импорта/ссылок) – MechMachineMan

+1

Я не знаю, что означает «partial VB.Net», я думал, что Autodesk использовал Visual Basic для приложений (VBA) для макросов. VB.Net - это не то же самое, что VBA. – Blackwood

ответ

0

Вы всегда можете использовать Partial Class разбить код на несколько файлов.

Таким образом, вы создаете свою форму (скажем, Form1) обычным способом. Затем поместите код в другой файл класса с классом объявлен Partial

Например,

Partial Class Form1 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     MsgBox(TextBox1.Text) 
    End Sub 
End Class 

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

Public Class Form1Code 
    Inherits Form1 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     MsgBox(TextBox1.Text) 
    End Sub 
End Class 
+0

Является ли это одним из фактических полезных применений для частичного класса? Быстрый поиск предложил избегать частичных классов, таких как чума. Есть ли другой способ сделать это, кроме всего этого в одном проекте? – MechMachineMan

+0

Другой способ - наследовать вашу форму. Унаследованная форма будет иметь все, что есть в форме, с тем, что вы хотите добавить. –

+0

И наследование по-прежнему позволит получить доступ к событиям формы? – MechMachineMan

 Смежные вопросы

  • Нет связанных вопросов^_^