首页 文章

如何在VSTO加载项中显示WPF窗口?

提问于
浏览
0

我是第一次将我的VBA代码迁移到VSTO来为excel创建COM加载项 . 我能够将所有代码转换为vb . 不幸的是,我在VS2017中创建Windows窗体时遇到了困难 . 我试图添加Windows窗体但我没有看到任何Windows窗体 . 相反,我只能添加用户控件(WPF) .

我确实设法使用XAML创建表单,但我遇到的最大问题是如何初始化表单 .

进口是下面的进口

Imports Microsoft.Office.Interop.Excel
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Windows.Forms

我在下面的代码中看到以下错误

处理MyBase.Load - >无法找到事件“加载”

在此之后我没有看到任何工作 . 有人可以解释我们如何处理加载和卸载用户控件(WPF) . 也是为什么我无法导入Windows窗体 .

Private Sub UserControl1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim RefSht As Object
    Dim TableList() As String
    Dim IDTable As String
    Dim count As Integer : count = 0
    Dim TextBox1 As System.Windows.Controls.TextBox
    Dim TextBox2 As System.Windows.Controls.TextBox
    Dim TextBox3 As System.Windows.Controls.TextBox
    Dim TextBox4 As System.Windows.Controls.TextBox
    Dim TextBox5 As System.Windows.Controls.TextBox
    Dim TextBox6 As System.Windows.Controls.TextBox
    Dim cmbIDTable As System.Windows.Controls.ComboBox

    Dim wb As Excel.Workbook = Globals.ThisAddIn.Application.ActiveWorkbook
    RefSht = wb.Worksheets("RefSheet")

    On Error Resume Next
    IDTable = ReportSheet.Range("IDTable")
    TextBox1.Text = ReportSheet.Range("Title")
    TextBox2.Text = ReportSheet.Range("Component")
    TextBox3.Text = ReportSheet.Range("Selection")
    TextBox4.Text = ReportSheet.Range("Parameters")
    TextBox5.Text = ReportSheet.Range("Summary")
    TextBox6.Text = ReportSheet.Range("Category")

    TableList = Split(GetTableListData(), ";")
    cmbIDTable.ItemsSource = TableList
    While IDTable <> TableList(count)
        count = count + 1
    End While
    cmbIDTable.SelectedItem = count
End Sub

1 回答

  • 0

    在问题背后遇到很多麻烦之后,我发现我的VS中没有安装Windows窗体 . 我已经包含了这个包,我现在能够工作了 .

相关问题