У меня есть приложение MDI, в котором я пытаюсь получить список открытых окон для меню ленты ComponentOne
. Использование VB.NET. У меня есть эта подпрограмма для создания новой дочерней формы в контейнере MDI:
Private Sub newButton_Click(sender As Object, e As EventArgs) Handles newButton.Click
' Create a new instance of the child form.
Dim ChildForm As New MyProject.MyForm
'Make it a child of this MDI form before showing it.
ChildForm.MdiParent = Me
m_ChildFormNumber += 1
ChildForm.Text = "Window " & m_ChildFormNumber
ChildForm.Show()
End Sub
Затем в другом Sub для меню ленты я пытаюсь получить список окон. Я пробовал это:
Dim frm As System.Windows.Window
For Each frm In My.Application.Windows
frmButton = New C1.Win.C1Ribbon.RibbonButton(frm.Title)
...
Но я получаю NullReferenceException
за коллекцию System.Windows.Window
. Итак, я попробовал это:
For Each Window In My.Application.Windows
frmButton = New C1.Win.C1Ribbon.RibbonButton(Window.Title)
...
Но при этом я получаю «не удалось разрешить перегрузку, потому что ни один доступный« новый »не может быть вызван без сужающего преобразования» в аргументах для нового RibbonButton
. Если я включаю Option Strict
, конечно, он говорит, что запрещает позднее связывание.
Итак, я думаю, в конечном итоге мне интересно, почему моя коллекция Windows пуста, даже если я открывал дочерние формы. Тогда даже помимо этого, почему New RibbonButton принимает frm.Title, но не Window.Title.
ПРИМЕЧАНИЕ (если вам интересно)... frmButton является объектом класса:
Friend WithEvents frmButton As C1.Win.C1Ribbon.RibbonButton
Благодарю вас!
Dim frm As System.Windows.Window
для WinForms, который должен бытьSystem.Windows.Forms.Form
или простоForm
, поскольку вам не нужно добавлять все пространства имен - person Ňɏssa Pøngjǣrdenlarp   schedule 07.10.2014