NShape(矢量图形编辑器) 入门(二)
在上篇博文里介绍如何创建一个最基本的NShape查看器。本章将会继续完善该程序。
创建一个NShape编辑器
1.打开上文创建的工程文件,进入WinForm窗口界面。双击窗体标题栏进入 Form1_Load
方法,在该方法最下方添加以下代码:
private void Form1_Load(object sender, EventArgs e)
{
///……
display1.ActiveTool = new SelectionTool();
}
完成后运行程序可以发现已经可以选择并编辑画板上的图形对象。
2.在文件打开选项卡添加保存选项。双击 保存
选项,进入 保存ToolStripMenuItem_Click
方法,添加代码:
private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
{
if(!project1.IsOpen)
{
return;
}
string filePath = xmlStore1.ProjectFilePath;
if (!File.Exists(filePath))
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "*.nspj|*.nspj";
if(saveFileDialog.ShowDialog() == DialogResult.OK)
{
xmlStore1.ProjectFilePath = filePath;
}
}
project1.Repository.SaveChanges();
}
完成后即可保存文件。
3.在文件打开保存选项卡添加新建选项。双击 新建
选项,进入 新建ToolStripMenuItem_Click
方法,添加代码:
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (project1.IsOpen)
{
if (project1.Repository.IsModified)
{
switch(MessageBox.Show("当前文件已修改但尚未保存,是否保存","提示",MessageBoxButtons.YesNoCancel))
{
case System.Windows.Forms.DialogResult.Yes:
{
保存ToolStripMenuItem_Click(null, null);
break;
}
case System.Windows.Forms.DialogResult.No: break;
default: return;
}
}
project1.Close();
}
//新建空白对象
project1.Name = "New Templet";
project1.Create();
display1.CreateDiagram("Diagram 1");
}
完成后即可新建文件。
4.双击菜单栏下 打开
选项,进入 打开ToolStripMenuItem_Click
方法,完善代码:
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
///……
if(project1.IsOpen)
{
if (project1.Repository.IsModified)
{
switch (MessageBox.Show("当前文件已修改但尚未保存,是否保存", "提示", MessageBoxButtons.YesNoCancel))
{
case System.Windows.Forms.DialogResult.Yes:
{
保存ToolStripMenuItem_Click(null, null);
break;
}
case System.Windows.Forms.DialogResult.No: break;
default: return;
}
}
project1.Close();
}
///……
}
5.在文件新建打开保存选项卡添加另存为选项。双击 另存为
选项,进入 另存为ToolStripMenuItem_Click
方法,添加代码:
private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (!project1.IsOpen)
{
return;
}
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "*.nspj|*.nspj";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
xmlStore1.ProjectFilePath = saveFileDialog.FileName;
project1.Repository.SaveChanges();
}
}
6.最后进入 Form1_Load
方法,注释掉以下代码:
private void Form1_Load(object sender, EventArgs e)
{
///……
//project1.Name = "New Templet";
//project1.Create();
//display1.CreateDiagram("Diagram 1");
///……
}
完成以上步骤后一个基本的NShape编辑器就完成了。