我们可以在 C# 中使用来自另一个 winform 的某个 winform 的面板吗?

发布于 2024-07-20 06:58:05 字数 259 浏览 6 评论 0原文

我想在 C# 中使用 win-form 并在另一个表单中使用的面板中显示其内容或整个表单。

假设我有一个带有面板 Panel_of_A 的表单 A 和一个带有面板Panel_of_B的表单B

我想将Panel_of_A的内容显示到Panel_of_B中,或者你可能会说我想以另一种形式使用Panel_of_A。

或者您可以提供帮助,将表单 A 显示到表单 B 的面板中。

希望我能让您理解我的想法...

I want to use a win-form in C# and display its contents or the whole form in a panel used in another form.

Lets say i have a form A with a panel Panel_of_A
and a form B with a panel Panel_of_B

I want to display contents of Panel_of_A into Panel_of_B or you may say i want to use Panel_of_A in another form.

Or you may provide help for displaying a form say A into a panel on form B.

Hope i made u understand my thoughts...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

只是在用心讲痛 2024-07-27 06:58:05

我认为更好的方法是创建一个包含该面板的用户控件,并在两种窗体上(重新)使用它。

这是如何在 MSDN 上创建用户控件的教程

I think a better way for doing this is to create a User Control which contains that panel and (re)use it on both forms.

Here is a tutorial how to create User Controls on MSDN.

倾城泪 2024-07-27 06:58:05

创建一个包含要复制的逻辑的用户控件,然后在两个位置都包含新的用户控件。

Create a user control that contains the logic you want to replicate, then incude the new user control in both places.

帅气称霸 2024-07-27 06:58:05

在 FormB 的面板内显示 FormA 的实例怎么样? UserControl 可能是更好的方法,但您所要求的也是可能的。

fa = new FormA();
fa.TopLevel = false;
fa.FormBorderStyle = FormBorderStyle.None;
fa.Dock = DockStyle.Fill; 

fb = new FormB();
fb.panel1.Controls.Add(fa); // if panel1 was public

fa.Show();
fb.Show();

How's this for displaying an instance of FormA inside a panel on FormB? The UserControl is probably the better way to go, but what you asked for is possible.

fa = new FormA();
fa.TopLevel = false;
fa.FormBorderStyle = FormBorderStyle.None;
fa.Dock = DockStyle.Fill; 

fb = new FormB();
fb.panel1.Controls.Add(fa); // if panel1 was public

fa.Show();
fb.Show();
姐不稀罕 2024-07-27 06:58:05

我建议将您想要重用的面板定义为一个单独的类,并将其放置在两个表单上。 如果您还需要显示的数据相同,请绑定到可以在表单之间传递的业务对象。

I would suggest defining the panel you want to reuse as a separate class, and place this on both forms. If you need the displayed data to be the same as well, bind to a business object than can be passed between the forms.

£烟消云散 2024-07-27 06:58:05

根据应用程序的大小和规模,您可能需要考虑(免费)复合 UI 应用程序块

从简介中:

它提供了经过验证的构建实践
复杂的智能客户端用户界面
基于众所周知的设计模式
例如复合模式,在
哪些简单的用户界面部分可以
组合起来创建复杂的
解决方案,但同时
允许这些部分
独立开发、测试和
已部署。

Depending on the size and scale of your application, you may want to consider the (free) Composite UI Application Block

From the blurb:

It provides proven practices to build
complex smart client user interfaces
based on well known design patterns
such as the Composite pattern, in
which simple user interface parts can
be combined to create complex
solutions, but at the same time
allowing these parts to be
independently developed, tested, and
deployed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文