C# AE之返回上一級和下一級的實戰操作

我就廢話不多說瞭,大傢還是直接看代碼吧~

try
      {
        //判斷是否可以返回上一視圖
        if (mapControl.ActiveView.ExtentStack.CanUndo())
        {
          //執行操作
          mapControl.ActiveView.ExtentStack.Undo();
          //刷新
          mapControl.Refresh();
        }
      }
      catch (Exception ex)
      {
        throw;
      }
 try
      {
        if (mapControl.ActiveView.ExtentStack.CanRedo())
        {
          mapControl.ActiveView.ExtentStack.Redo();
          mapControl.Refresh();
        }
      }
      catch (Exception ex)
      {
        throw;
      }

補充:C#——單擊按鈕實現返回上一級窗口方法

一、實現父窗體的隱藏及顯現

假設Form1是父窗體,Form2是新的窗體

Form1的按鈕button1代碼:

private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(this);//把form1傳給form2
this.Hide();//把自己隱藏瞭
//form2.ShowDialog();//2種顯示方法都可以
form2.Show();
}

Form2的代碼:

public partial class Form2 : Form
{
Form1 _form1;
public Form2(Form1 form1)
{
InitializeComponent();
_form1 = form1;
}
private void button1_Click(object sender, EventArgs e)
{
//把自己關閉,並顯示Form1
this.Close();
_form1.Show();
}
}

二、多線程關閉窗體

Form1 為歡迎界面,close為關閉按鈕,Form 2為主界面

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
th = new Thread(new ThreadStart(StartNewForm));
}
private Thread th;
private void StartNewForm()
{
From1 mf = new From2();
Application.Run(mf);//啟動主界面
}
private void close_Click(object sender, EventArgs e)
{
this.Close();//關閉窗體
th.Start();//啟動另一個線程
}
}

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: