最近BOSS说每次画界面都要浪费很长时间,说我们能否开发一个界面生成器然后跟动软的代码生成器结合可以节省很多开发周期及成本。我们打算最初就做简单的功能 比如一个Button 只写它 Name、Text 、Size、Location 几个属性不知道各位有什么建议和思路,昨晚上琢磨了一下我大致的思路如下1.在界面选选择要生成的控件,然后在几个文本框里面写入这个控件的几个属性,然后点生成按钮
2.点击生成按钮的时候要求输入命名空间 和 此Designer.cs文件对应的窗体名称 然后生成一个 “对应窗体名称”.Designer.cs文件 同时文件里面写入namespace “生成时写的命名空间”
{
    partial class Main
    {
        /// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;        /// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }        #region Windows 窗体设计器生成的代码        /// <summary>
        /// 设计器支持所需的方法 - 不要
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.button1 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(65, 61);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(158, 170);
            this.button1.Text = "发号";
           
        }        #endregion        private System.Windows.Forms.Button button1;
    }
}3.然后继续添加一个 TextBox的话 就在生成的Designer.cs文件里 Button1代码后面 写入this.TextBox.Location = new System.Drawing.Point(65, 61);
this.TextBox.Name = "textBox1";
this.TextBox.Size = new System.Drawing.Size(158, 170);
this.button1.Text = "";
4.把需要的界面控件都添加完了 把Designer.cs 覆盖到新建的一个项目里面 当然命名空间和窗体名跟Designer.cs一致。5.然后运行新建的项目控件就出来了,在根据需求调整控件。
一.请问大家有没有更好的思路共同探讨一下。
二.关于Winform界面生成器如果用我上面的思路,我觉得就没有多大的必要去做这类的生成器,我觉得VS拖拽画窗体,代码自动生成已经很快了,如果各位大侠觉得 界面生成器比较有利 可否探讨一下。
三.如果大侠们接触过界面生成器可否推荐一下?

解决方案 »

  1.   

    可以像代码生成器原理一样。读数据库的字段相关信息(数据类型,长度,主外键)来动态创建UI!可以看看动软的原码!它生成的UI 是asp.net的
      

  2.   


    动软可以生成ASP.NET UI的吗,似乎只生成数据库方面的吧。
      

  3.   

    xaml对数据与界面控件的绑定有很好的支持,而且针对“行为”等等也可以简单地用声明的方式来开发。要比写一堆代码,方便多了。
      

  4.   

    既然生成, 就要有有输入, 产生 designer.cs 中的东西,对设计器来说, 交互的拖放设计, 就是输入.
      

  5.   

    唉,蛋疼啊!
    生成界面,o(︶︿︶)o 唉!
    生成UI,我总觉得多此一举没事找事呢。
      

  6.   


    嗯,暂时就先不说生成出来的控件是不用调的。
    就说随便指定location 等几个属性后 生成 Designer.cs文件我总觉得BOSS让我们做的事是多余的,因为用VS画控件的时候VS已经自动生成好了,让我们做这个东西无非就是一次出多个控件 覆盖Designer.cs后 再去调整位置。 啊,越想越悲剧。不知道怎么想的。
      

  7.   

    输出是UI代码的话,输入是什么?所见即所得?VS已经有很强大的界面设计器了。
    如果是想要html那种已经给定的界面布局逻辑,看看WPF xaml的界面吧,也许那正是你想要的。
      

  8.   


    可能我描述的有错误吧。
    不是输出UI,是输出UI的代码,不用所见即所得。 
    选好要生成的控件 在填写几个相关属性,生成出 Designer.cs文件。