我正在使用具有两种形式的WinForm应用程序。第一种形式是具有所有逻辑的主要形式。第二种形式包含浏览器控件,并基于从Form1传递的数据访问内部网页。然后可以与网页进行交互。当在Form1上弹出MessageBox并在Form2上阻止交互时,就会出现问题。
是否有一种方法可以在应答MessageBox之前启用Form2的交互?
[HttpPost]
public JsonResult Create(CreateRMAVM vm)
{
try
{
if (vm.CustomerName != null && vm.vares != null)
{
vm.vares.Select(c => { c.CustomerName = vm.CustomerName; return c;
}).ToList();
}
OpenBrowser子:
OpenBrowser(docIDs, txtID.Text)
Me.Activate()
resultYESNO = MessageBox.Show(Me, questionText, "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If resultYESNO = DialogResult.Yes Then
columnValue = "Y"
ElseIf resultYESNO = DialogResult.No Then
columnValue = "N"
End If
答案 0 :(得分:1)
以下示例显示了如何创建不同的UI线程以及如何在不同的线程上显示不同的表单。然后,模态对话框形式在创建它们的线程中是模态的:
Imports System.Threading
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For i = 1 To 2
Dim index = i
Dim t = New Thread(
Sub()
Dim f = New Form With {.Text = $"Form {index}"}
Dim b = New Button With {.Text = "Click Me."}
AddHandler b.Click,
Sub()
Using d As New Form()
d.StartPosition = FormStartPosition.CenterParent
d.Size = New Drawing.Size(100, 100)
d.ShowDialog()
End Using
End Sub
f.Controls.Add(b)
Application.Run(f)
End Sub)
t.SetApartmentState(ApartmentState.STA)
t.IsBackground=True
t.Start()
Next
End Sub
End Class