在 c# 中使用文本框中的数据库值打开特定的 Windows 窗体

Posted

技术标签:

【中文标题】在 c# 中使用文本框中的数据库值打开特定的 Windows 窗体【英文标题】:open specific windows form using database value in textbox in c# 【发布时间】:2018-09-08 04:28:33 【问题描述】:

我有 3 个现有的 Windows 窗体 现在我想在文本框中输入现有的 windows 窗体名称,它将显示在屏幕上。 文本框值来自数据库列。 请问我该怎么做。

【问题讨论】:

到目前为止你做了什么? 我现在什么都没做。 How to open form by string name?的可能重复 @AhmedAbdelhameed 我正在谈论在文本框中显示具有数据库值基础的现有表单......并且你提到的链接是关于字符串的。 您声明:“文本框值来自数据库列”。上次我检查时,“文本框值” 是一个字符串。如果你的意思是别的,你需要澄清你的问题。 【参考方案1】:

在这种情况下,我假设表单与试图调用它们的表单位于相同的命名空间中。验证用户的任何输入很重要,因为其中可能存在拼写错误。

试试下面的代码...

var thisType = this.GetType().ToString();
var nameSpace = thisType.Substring(0, thisType.LastIndexOf('.') + 1);
try

    var form = Activator.CreateInstance(this.GetType().Assembly.FullName, nameSpace + textBox1.Text).Unwrap() as Form;
    form?.Show();

catch

    // Chances are there is no such form.

我还建议另一种策略,因为您建议数据库可能具有这些值,我宁愿将名称加载到组合框中,同时还存储全名,包括命名空间,然后创建并显示表单而不是用户输入。

【讨论】:

以上是关于在 c# 中使用文本框中的数据库值打开特定的 Windows 窗体的主要内容,如果未能解决你的问题,请参考以下文章

C#中的变量无法从html文本框中获取值

C#中怎样从一个form的文本框获取另一个form中Comobox控件的值

如何使用 C# 从文本框中的访问数据库中获取数据

c# 将从单个文本框中获取的多个值分配给标签

C# 委托和事件 实现窗体间的通信

如何通过在 C# windows 窗体中的文本框中输入来更改图像的大小?