Files
easySif/mainProgram/Form1.cs

184 lines
5.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Threading;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace mainProgram
{
public partial class main : Form
{
public main()
{
InitializeComponent();
}
private ProjectManager mProjectManager = null;//保存打开的/新建的工程对象
public void RecieveProjectManager(ProjectManager value)
{
mProjectManager = value;
Console.WriteLine("工程文件目录为:" + mProjectManager.ProjectPath + "---------------------");
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
NewProjectWindow w = new NewProjectWindow();
w.TransferEvent += RecieveProjectManager;
//w.Show();//不阻塞
w.ShowDialog();//阻塞
}
private void OpenProjectToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenProjectWindow w = new OpenProjectWindow();
w.TransferEvent += RecieveProjectManager;
//w.Show();//不阻塞
w.ShowDialog();//阻塞
}
private void RadToolStripMenuItem_Click(object sender, EventArgs e)
{
if (mProjectManager is null)
{
MessageBox.Show(this, "请先打开工程!", "提示");
return;
}
RadCorrectionWindow w = new RadCorrectionWindow(mProjectManager);
//w.TransferEvent += RecieveProjectManager;
var addr2 = getMemory(mProjectManager);
Console.WriteLine("父窗口变量的地址 = " + addr2);
//w.Show();//不阻塞
w.ShowDialog();//阻塞
}
public string getMemory(object o) // 获取引用类型的内存地址方法
{
GCHandle h = GCHandle.Alloc(o, GCHandleType.WeakTrackResurrection);
IntPtr addr = GCHandle.ToIntPtr(h);
return "0x" + addr.ToString("X");
}
private void ExitToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void main_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("确实退出吗", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
private void SvdToolStripMenuItem_Click(object sender, EventArgs e)
{
if (mProjectManager is null)
{
MessageBox.Show(this, "请先打开工程!", "提示");
return;
}
SVDWindows w = new SVDWindows(mProjectManager, "svd");
//w.TransferEvent += RecieveProjectManager;
//w.Show();//不阻塞
w.ShowDialog();//阻塞
}
private void DoasToolStripMenuItem_Click(object sender, EventArgs e)
{
if (mProjectManager is null)
{
MessageBox.Show(this, "请先打开工程!", "提示");
return;
}
SVDWindows w = new SVDWindows(mProjectManager, "doas");
//w.TransferEvent += RecieveProjectManager;
//w.Show();//不阻塞
w.ShowDialog();//阻塞
}
private void SfmToolStripMenuItem_Click(object sender, EventArgs e)
{
if (mProjectManager is null)
{
MessageBox.Show(this, "请先打开工程!", "提示");
return;
}
SVDWindows w = new SVDWindows(mProjectManager, "sfm");
//w.TransferEvent += RecieveProjectManager;
//w.Show();//不阻塞
w.ShowDialog();//阻塞
}
private void SfmGaussinToolStripMenuItem_Click(object sender, EventArgs e)
{
if (mProjectManager is null)
{
MessageBox.Show(this, "请先打开工程!", "提示");
return;
}
SVDWindows w = new SVDWindows(mProjectManager, "sfm_gaussian");
//w.TransferEvent += RecieveProjectManager;
//w.Show();//不阻塞
w.ShowDialog();//阻塞
}
private void SfldToolStripMenuItem_Click(object sender, EventArgs e)
{
if (mProjectManager is null)
{
MessageBox.Show(this, "请先打开工程!", "提示");
return;
}
SVDWindows w = new SVDWindows(mProjectManager, "sfld");
//w.TransferEvent += RecieveProjectManager;
//w.Show();//不阻塞
w.ShowDialog();//阻塞
}
private void Fld3ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (mProjectManager is null)
{
MessageBox.Show(this, "请先打开工程!", "提示");
return;
}
SVDWindows w = new SVDWindows(mProjectManager, "3fld");
//w.TransferEvent += RecieveProjectManager;
//w.Show();//不阻塞
w.ShowDialog();//阻塞
}
}
}