如果我的问题和描述看起来太简单或已经被其他人问过,请接受我的道歉。
我以前可能问过类似的问题。但是,我仍然对winform有点困惑。假设您有一个带有Mainform, Form1, Form2, Form3的 Delphi prism .net 程序。另外,您希望能够从 Mainform、Form2 和 Form3 中显示 Form1 的单个瞬间。你是怎样做的?我必须有一个需要在整个程序中根据需要显示的 winform,以在 RichTextBox 中显示应用程序错误。这意味着可以在我的程序中随时随地调用 SysErrorDlg winform 来显示程序错误。对我来说,如果在我的整个程序中只能访问 SysErrorDlg winform 的单个实例,则能够做到这一点。
按照下面非常简单的代码。这几乎就是我想要做的。
=========================================
Mainform
using
Form1;
Form2;
Form3;
Mainform1 = class(System.Windows.Form)
private
method ShowBtn_Click(sender: System.Object; e: System.EventArgs)
public
constructor;
F1:Form1;
end;
constructor MainForm1;
begin
F1 := new Form1;
end;
method Mainform1.ShowBtn_Click(sender: System.Object; e: System.EventArgs);
begin
F1.Show; // or ShowDialog;
end;
=====================================================
Form1
Form1 = class(System.Windows.Form)
private
public
constructor;
end;
constructor Form1;
begin
end;
=====================================================
Form2
using
Mainform;
Form2 = class(System.Windows.Form)
private
method ShowBtn_Click(sender: System.Object; e: System.EventArgs)
public
constructor;
end;
constructor Form2;
begin
end;
method Form2.ShowBtn_Click(sender: System.Object; e: System.EventArgs);
begin
MainForm1.F1.Show; // or ShowDialog;
end;
====================================================
Form3
Using
MainForm;
Form3 = class(System.Windows.Form)
private
method ShowBtn_Click(sender: System.Object; e: System.EventArgs)
public
constructor;
end;
constructor Form3;
begin
end;
method Form3.ShowBtn_Click(sender: System.Object; e: System.EventArgs);
begin
MainForm1.F1.Show; // or ShowDialog;
end;
============================================
甚至有可能做到这一点吗?我的编译器不允许我声明一个全局 winform 变量,但抱怨它需要被标识为公共变量。即使有启用此功能的选项,我也不想因为我喜欢将变量保持为私有或类本地的想法。
如果 form1 的实例已经在 Mainform 中声明和实例化,如何将 form1 的实例传递给 form2 或 form3?我了解 show 和 showdialog 的工作原理。如果 Form1 实例位于 MainForm 中,您将使用哪一行代码从 Form2 访问 Form1 实例?
您可以提供一些代码以及您的解释。