运行activex控件:C#实现运行期Control控件设计



 最近看到很多人对C#运行期Control控件设计问题于是写了这个Memo希望对大家有用
  
  1、实现了Control控件自由拖动
  
  2、实现了Control控件拖动创建,右键删除等类似IDEControl控件创建,当然更多功能靠大家自己完善




  3、实现属性框和Control控件绑定,可以在运行期修改Control控件Text...

 

  以下是部分代码

 

 

 

view plaincopy to clipboardpr?

    ="dp-c">
  1. ="alt">="keyword">private ="keyword">void button2_Click(="keyword">object sender, EventArgs e)   
  2. ="">{   
  3. ="alt">    ="comment">//Control控件框显示和隐藏   
  4. ="">    ="keyword"> (panel1.Visible  ="keyword">true)   
  5. ="alt">    {   
  6. ="">        button2.Text = ="">"+  Control控件框";   
  7. ="alt">        panel1.Visible = ="keyword">false;   
  8. ="">    }   
  9. ="alt">    ="keyword">  
  10. ="">    {   
  11. ="alt">        button2.Text = ="">"-  Control控件框";   
  12. ="">        panel1.Visible = ="keyword">true;   
  13. ="alt">    }   
  14. ="">}  

 

 

 

view plaincopy to clipboardpr?

    ="dp-c">
  1. ="alt">="keyword">private ="keyword">void button3_MouseDown(="keyword">object sender, MouseEventArgs e)   
  2. ="">{   
  3. ="alt">    ="comment">//判断鼠标左键按下   
  4. ="">    ="keyword"> (e.Button  MouseButtons.Left)   
  5. ="alt">    {   
  6. ="">        Button btn = (Button)(sender);   
  7. ="alt">        ="comment">//化拖放操作   
  8. ="">        btn.DoDragDrop(btn, DragDropEffects.Copy);   
  9. ="alt">    }   
  10. ="">}   
  11. ="alt">  
  12. ="">="keyword">private ="keyword">void panel4_DragDrop(="keyword">object sender, DragEventArgs e)   
  13. ="alt">{   
  14. ="">    ="comment">//开始拖动   
  15. ="alt">    Button btn = (Button)(e.Data.GetData(="">".Windows.Forms.Button"));   
  16. ="">    Button btn_ = ="keyword"> Button;   
  17. ="alt">    btn_.ContextMenuStrip = contextMenuStrip1;   
  18. ="">    btn_.Name = btn_.Text = btn.Text + ="">"--" + name;   
  19. ="alt">    btn_.Left = PoToClient(MousePosition).X-panel4.Left;   
  20. ="">    btn_.Top = PoToClient(MousePosition).Y - panel4.Top;   
  21. ="alt">    ="comment">//加载事件   
  22. ="">    btn_.Click  ="keyword"> .EventHandler(="keyword">this.button1_Click);   
  23. ="alt">    btn_.MouseLeave  ="keyword"> .EventHandler(="keyword">this.button1_MouseLeave);   
  24. ="">    btn_.MouseDown  ="keyword"> .Windows.Forms.MouseEventHandler(="keyword">this.button1_MouseDown);   
  25. ="alt">    btn_.MouseMove  ="keyword"> .Windows.Forms.MouseEventHandler(="keyword">this.button1_MouseMove);   
  26. ="">    btn_.Parent = panel4;   
  27. ="alt">    name;   
  28. ="">}  

 

 

 

 

 

 

view plaincopy to clipboardpr?

    ="dp-c">
  1. ="alt">="keyword">private ="keyword">void panel4_DragEnter(="keyword">object sender, DragEventArgs e)   
  2. ="">{   
  3. ="alt">    e.Effect = DragDropEffects.Copy;   
  4. ="">}   
  5. ="alt">  
  6. ="">="keyword">private ="keyword">void button1_Click(="keyword">object sender, EventArgs e)   
  7. ="alt">{   
  8. ="">    groupBox1.Text = (sender ="keyword">as Button).Name + ="">"属性";   
  9. ="alt">    textBox1.Text = (sender ="keyword">as Button).Text;   
  10. ="">  
  11. ="alt">}   
  12. ="">  
  13. ="alt">="keyword">private ="keyword">void button4_MouseDown(="keyword">object sender, MouseEventArgs e)   
  14. ="">{   
  15. ="alt">    ="comment">//判断鼠标左键按下   
  16. ="">    ="keyword"> (e.Button  MouseButtons.Left)   
  17. ="alt">    {   
  18. ="">        Button btn = (Button)(sender);   
  19. ="alt">        ="comment">//化拖放操作   
  20. ="">        btn.DoDragDrop(btn, DragDropEffects.Copy);   
  21. ="alt">    }   
  22. ="">}  

   

 

 

 

view plaincopy to clipboardpr?

    ="dp-c">
  1. ="alt">="keyword">private ="keyword">void toolStripMenuItem2_Click(="keyword">object sender, EventArgs e)   
  2. ="">{   
  3. ="alt">    ="comment">//释放Control控件   
  4. ="">    btnflag.Dispose;   
  5. ="alt">}   
  6. ="">  
  7. ="alt">="keyword">private ="keyword">void textBox1_KeyPress(="keyword">object sender, KeyPressEventArgs e)   
  8. ="">{   
  9. ="alt">    btnflag.Text = textBox1.Text;   
  10. ="">}   
  11. ="alt">  
  12. ="">="keyword">private ="keyword">void textBox1_KeyDown(="keyword">object sender, KeyEventArgs e)   
  13. ="alt">{   
  14. ="">    ="comment">//响应回车   
  15. ="alt">    ="keyword"> (e.KeyValue  13)   
  16. ="">        btnflag.Text = textBox1.Text;   
  17. ="alt">  
  18. ="">}   
  19. ="alt">  
  20. ="">="keyword">private ="keyword">void button7_Click(="keyword">object sender, EventArgs e)   
  21. ="alt">{   
  22. ="">    ="comment">//Control控件框显示和隐藏   
  23. ="alt">    ="keyword"> (groupBox1.Visible  ="keyword">true)   
  24. ="">    {   
  25. ="alt">        button7.Text = ="">"+  属性窗口";   
  26. ="">        groupBox1.Visible = ="keyword">false;   
  27. ="alt">    }   
  28. ="">    ="keyword">  
  29. ="alt">    {   
  30. ="">        button7.Text = ="">"-  属性窗口";   
  31. ="alt">        groupBox1.Visible = ="keyword">true;   
  32. ="">    }   
  33. ="alt">}  

 

 

实现效果图如下

C#实现运行期Control控件设计
  更多功能当然需要大家自己扩展假如你有兴趣...
  欢迎大家光临MC编程网和我进行编程技术探讨...

Tags:  3d控件 flash控件 activex控件 运行activex控件

延伸阅读

最新评论

发表评论