gpt4 book ai didi

c# - 如何有条件地换出表单的 "User Input"部分?

转载 作者:行者123 更新时间:2023-11-30 15:03:58 24 4
gpt4 key购买 nike

我正在创建一个实用程序,它需要足够灵活以使用用户输入的不同类型的数据。不仅仅是不同的数据,因为一个用户可能会输入“Rory Gallagher”另一个“Merle Travis”另一个“Louis Jordan”和另一个“Gatemouth Brown”。

更像是一个用户会输入“Rory Gallagher”,另一个“42”,另一个同时输入日期(例如 9/8/1956)和 ID 值(例如“00034872184”)。

所以问题出在 GUI 上:我怎样才能“换掉”表单中提示他们输入的部分?创建几个 99% 相同的实用程序似乎有点过分了。但是应用程序的某些“版本”只需要一个“输入一些值”标签和一个文本框,而另一个可能需要提示他们输入两条甚至更多信息。

我不想在表单上有一个会调用另一个表单的“输入数据”按钮,因为当用户只需要输入一点信息时,这看起来很奇怪。

我认为策略模式可能是我 future 的方向,但 GUI 部分仍然是个难题。如果我们使用 WPF 会更容易,但我们没有。我想我仍然可以留下足够大的表格部分以包含“最大”场景,但这是最好的方法吗?

更新

我尝试了以下建议:

我在我的表单中添加了一个面板,并通过添加 | 创建了一个用户控件UserControl 并试过这个:

panel1.Controls.Add(UserControl1);
UserControl1.Dock = DockStyle.Fill;

...但遭遇了史诗般的失败(“'PlatypiRUs.UserControl1' 是一个'类型'但像'变量'一样使用”和“非静态字段,方法或属性需要对象引用'System.Windows.Forms.Control.Dock.get'")

再次更新

现在取得了史诗般的成功:

UserControl1 usr1 = new UserControl1();
panel1.Controls.Add(usr1);
usr1.Dock = DockStyle.Fill;

最佳答案

我建议将不同的用户控件动态加载到表单的该部分。为了设计时的简单性,您可以在动态控件所在的位置放置一个面板,然后将它加载到该面板中并打开停靠,这样它就会填满整个面板。然后您可以为您需要的每组数据输入字段创建一个单独的用户控件。例如,如果您有一个名为 pnlCustom 的面板控件,您可以在表单的加载事件(或任何有意义的地方)中执行以下操作:

UserControl1 customControl = new UserControl1();
pnlCustom.Controls.Add(customControl);
customControl.Dock = DockStyle.Fill;

关于c# - 如何有条件地换出表单的 "User Input"部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10915293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com