当前位置:编程学习 > C#/ASP.NET >>

C#中form切换时,form上已改变位置的控件被初始化

  
在main form 中添加按钮button4,点击显示FrmM1,然后改变了FrmM1上的控件button5位置之后,退出FrmM1,
再次在main form 点击button4,点击显示FrmM1时,button5的位置被初始化了!!!!!!!

求教大神,怎么能够在form中保持已改变位置的控件的位置。

      static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Frm_Main FrmMain = new Frm_Main();
            Application.Run(FrmMain);
        }
...........


        private void button4_Click(object sender, EventArgs e)

        {
   
               Frm_M1 FrmM1 = new Frm_M1();
                FrmM1.Show(); 
            ;
        }   
...........



        private void button2_Click(object sender, EventArgs e)
        {
            this.Hide();
    

        } 
............. c# 控件 form --------------------编程问答-------------------- if (FrmM1 == null || FrmM1.IsDisposed) FrmM1 = new Frm_M1();
FrmM1.Show(); 
将Frm_M1 FrmM1定义成成员变量:
private Frm_M1 FrmM1; --------------------编程问答-------------------- 将button的位置信息保存,比如注册表,每次form_load时读取,初始化
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/ --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
if (FrmM1 == null || FrmM1.IsDisposed) FrmM1 = new Frm_M1();
FrmM1.Show(); 
将Frm_M1 FrmM1定义成成员变量:
private Frm_M1 FrmM1;


版主说的对,你在click事件里面写了
 Frm_M1 FrmM1 = new Frm_M1();

就相当于每次点它都new一个全新的Frm_M1()出来,加上之前你的状态没有持久化保存,这个新的和之前你修改过的当然就不一样了。 --------------------编程问答--------------------   private void button4_Click(object sender, EventArgs e)

        {
   
               Frm_M1 FrmM1 = new Frm_M1();
                FrmM1.Show(); 
            ;
        }   
每次都new 了一个Frm_M1,自然会初始化了。
把Frm_M1做成单例模式,closing事件里cancel掉,执行hide,然后从parent里把自己remove掉。
下次show之前在装进容器控件里。搞定
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,