上述功能如何在C#中实现?
动态生成的Form中,可能包括有N个Button,Button的Name属性取自数据库,Button_click如何编写?,Button_click的内容要写入数据表中,再读取出来Run.适合做二次开发。

解决方案 »

  1.   

    Button_click如何编写?,Button_click的内容要写入数据表中,再读取出来Run. 你想做脚本?
      

  2.   

    在代码里面new一个Form,再new一些Button,通过Form.Controls.Add(button),添加到窗口上通过Button.Click += new EventHandler(Button_Click),绑定事件
    所有的Button点击事件都会到Button_Click方法为了区分是谁点击的,可以通过参数sender判断,这个sender就是被点击的button
      

  3.   

    哎。这个实验我做过。你读出来就不能运行了。因为C#是一次编译的。如果BS还有可能。C/S的需要其它的脚本解析了。
      

  4.   

    private Button btn=new Button() ;
       btn.Name="Button1"        
       btn.Location=new Point(100,200);
       btn.Click += new EventHandler(this.btn_Click);
         this.Controls.Add (btn);
      
            private void btn_Click(object sender, System.EventArgs e)
            {
                Button btn= (Button)sender;        }
      
      

  5.   

    很久以前我用delphi的一个第三方的脚本控件做过一个系统的脚本自定义子系统,所有的控件的主要事件的代码都可以在运行时用pascal编写保存和相互触发,
    不过后来证明,不是很实用,只能做简单的逻辑
      

  6.   

        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Form1 frm = new Form1();
                frm.AddButton("新建", new System.Drawing.Size(10, 20), new System.Drawing.Point(10, 10), 0, "按钮", btnnew_click);
                Application.Run(frm);
            }
            private static void btnnew_click(object sender, EventArgs e)
            {
                MessageBox.Show("HI");
            }
        }
       public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        public void AddButton(string btnName, Size btnSize, Point btnLocation, int btnTabIndex, string btnText,EventHandler click)
            {
                Button btnNew = new Button();
                btnNew.Location = btnLocation;
                btnNew.Name = btnName;
                btnNew.Click+=new EventHandler(click);
                btnNew.Size = btnSize;
                btnNew.TabIndex = btnTabIndex;
                btnNew.Text = btnText;
                this.Controls.Add(btnNew);
            }
        }
      

  7.   

    这种情况 只有自定义button了  先把Click事件写好
      

  8.   

    BUTTON的CLICK不要写到数据里面,可以做一个DLL   然后引用就可以了    
      

  9.   


    关键是我并不知道会有多少个button,多少个Listbox,多少个check,多少个Combobox,这些都是放在数据库里,根据database中相关的数据动态生成控件放在动态生成的Form中,其中一些控件可能包含脚本,脚本也放在数据库中,如何处理?
    现公司有用VFP做的系统,已做到二次开发,相关控件,脚本,全部是从数据库读取出来的。
    想转换为C#,太难。
      

  10.   

    不管怎么说   你要把这些方法写在一个DLL文件里面    你数据库里面可以存储路径(反射用),就可以实现了
      

  11.   

    看看winform中的InitializeComponent()方法,以前做过建议使用自定义控件,再使用arraylist来控制button组
      

  12.   

    先根据 一个 来实现一下 先 组织成一个类 
    然后 在new Form 的
    load 函数里面先获得控件的个数 ,然后再对控件 在Form的布局上控制一下
    尽可能抽象出来共同的行为和事件,对特殊的功能要求开放接口或者参数控制