在 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 窗体的主要内容,如果未能解决你的问题,请参考以下文章