为什么要navigateurl这样的功能呢?你捕获到双击事件,然后到数据库中读取相应的窗体名
然后用Switch语句来实例化窗口不就行了吗?
switch( formName )
{
case "form1":
{
form1 = new Form1();
form1.Show();
}break;
}
然后用Switch语句来实例化窗口不就行了吗?
switch( formName )
{
case "form1":
{
form1 = new Form1();
form1.Show();
}break;
}
解决方案 »
- c# 怎么给图片加上透明的文字水印
- 新手提问ado.net里datereader
- 如何实现焦点转移和在richtextbox里面显示不同的字体
- 虚心求教!如何读取当前网卡的活动或状态!最好用c#实现
- smartphone不支持OpenFileDialog,如何在smartphone下实现openfiledialog的功能?急~~谢谢~~
- 请问C# 里的画点函数是什么
- 请大家推荐一下软件构架和建模方面的学习方法和书籍
- 如何获得所打开的Windows应用程序相关信息
- 极度郁闷中,辛辛苦苦做的软件,竟然无人认可??请大家帮我分析一下!
- 自定义字符串的问题
- c#开发、oracle数据库:同一条sql的执行结果竟然不同??
- c#中Tpcilent
或
kh\form.cs这都是源文件,程序在运行时只能来运行编译好的程序比如一个EXE,或DLL,所以你只有源代码是不能做的,除非你在运行的时候把这些源代码动态成DLL,动态编译的实现在.NET中也有,但是相对来说比较麻烦.所以,你最好把数据库里存的"kh\form.cs"这样的字段值改成窗体的类的名字,比如这样来在数据库里存:
id parentid name Dllname Classname
11 10 bb kh.DLL form1 //这里应是一个窗体的类的FullName
12 10 cc kh.DLL from2 //这里应是一个窗体的类的FullName这样的话,你可以用
System.Reflection.Assembly.LoadFrom(DllPathName);来加载你的DLL,然后用如下的代码来加载并显示你的窗体:System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFrom(DllPathName);
object obj = asm.CreateInstance(typeName);
if (obj is Form)
{
(obj as Form).Show();
}