请问大家,如何动态生成winform窗体的内容。winform的窗体内容的代码是写在一个txt文件里的。以下是小弟的代码,
如果使用下面的代码,每次有新的内容写进去了,要编译一次,再执行才会成功。也就是要运行两次才可以。我应该怎么修改呢?请各位大虾指点! 运行第一次后会出现
点是后再运行一遍才能得到想要的结果。应该怎么解决呢?
string fName = Application.StartupPath + @"\..\..\tt1.txt";
string fileName = Application.StartupPath + @"\..\..\testtttttttttttttttttt.cs";
StreamReader objReader = new StreamReader(fName);
FileInfo finfo = new FileInfo(fileName);
finfo.Delete();
/**/
///创建只写文件流
using (FileStream fs = finfo.OpenWrite())
{
/**/
///根据上面创建的文件流创建写数据流
StreamWriter w = new StreamWriter(fs);
/**/
///设置写数据流的起始位置为文件流的末尾
w.BaseStream.Seek(0, SeekOrigin.End);
w.Write(objReader.ReadToEnd());
objReader.Close();
/**/
///清空缓冲区内容,并把缓冲区内容写入基础流
w.Flush();
/**/
///关闭写数据流
w.Close();
}
testtttttttttttttttttt a = new testtttttttttttttttttt();
a.Show();
如何动态生成winform窗体的内容? 不明白你具体要实现什么, 创建窗体内容,动态添加按钮,标签还是其它什么, 这些都可以new出来, 然后摆放正确位置即可
你可以先做一个用户控件,在这里面实现你想要的窗体内容,然后编译为dll,再让窗体装载这个这个用户控件就可以了啊。
用户控件可以做多个,到时候看情况决定加载哪个。
cs文件当然要编译后才能运行,你的思路本身就是错的。
你可以另外一个配置文件如ini,xml什么的,保存状态信息,让winform初始化时读取参数。
那个拖拉控件就会编程的时代早就结束了。
动态生成winform的过程就是动态初始化界面控件的过程。
你在txt 中储存了你要动态增加的控件的基本信息[位置、名称、类型、显示的内容。和其他控件的关系]。在初始化的时候,直接根据信息,初始化相应的控件,然后添加到界面容器上就是了啊。
拖拽的过程、你不应该在设计页面。你应该是自己写一个拖拽的页面,自己动议工具栏,仿效vs的就可以。在拖拽的事件中,根据拖拽的控件类型,初始化控件,保存的时候,就是把控件的基本信息[位置、名称、类型、显示的内容。和其他控件的关系].写到txt中去。
过程结束。