📄 mainframe.cs
字号:
if (theIndex<=0) return;
SwitchObjects(mDaPrintDocument.StaticObjects,theIndex,theIndex-1);
objectBrowser.SetData(mDaPrintDocument.Parameters,mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects);
designPane.SetObjects(mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects,mDaPrintDocument.DefaultPageSettings);
objectBrowser.SelectStaticNode(theIndex-1);
}
private void bringForwardStaticMenuItem_Click(object sender, System.EventArgs e)
{
int currentNumberOfStaticObjects = mDaPrintDocument.StaticObjects.Length;
int theIndex = objectBrowser.staticContentsNode.Nodes.IndexOf(objectBrowser.SelectedNode);
if (theIndex>=objectBrowser.staticContentsNode.Nodes.Count-1) return;
ICustomPaint[] tmp = new ICustomPaint[currentNumberOfStaticObjects];
tmp[currentNumberOfStaticObjects-1] = mDaPrintDocument.StaticObjects[theIndex];
Array.Copy(mDaPrintDocument.StaticObjects,0,tmp,0,theIndex);
Array.Copy(mDaPrintDocument.StaticObjects,theIndex+1,tmp,theIndex,currentNumberOfStaticObjects-theIndex-1);
mDaPrintDocument.StaticObjects = tmp;
objectBrowser.SetData(mDaPrintDocument.Parameters,mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects);
designPane.SetObjects(mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects,mDaPrintDocument.DefaultPageSettings);
objectBrowser.SelectStaticNode(currentNumberOfStaticObjects-1);
}
private void deleteStaticObjectMenuItem_Click(object sender, System.EventArgs e)
{
DeleteNode();
}
private void duplicateStaticMenuItem_Click(object sender, System.EventArgs e)
{
duplicateStaticObject();
}
private void forwardOneStaticMenuItem_Click(object sender, System.EventArgs e)
{
int theIndex = objectBrowser.staticContentsNode.Nodes.IndexOf(objectBrowser.SelectedNode);
if (theIndex>=objectBrowser.staticContentsNode.Nodes.Count-1) return;
SwitchObjects(mDaPrintDocument.StaticObjects,theIndex,theIndex+1);
objectBrowser.SetData(mDaPrintDocument.Parameters,mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects);
designPane.SetObjects(mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects,mDaPrintDocument.DefaultPageSettings);
objectBrowser.SelectStaticNode(theIndex+1);
}
private void sendToBackStaticMenuItem_Click(object sender, System.EventArgs e)
{
int currentNumberOfStaticObjects = mDaPrintDocument.StaticObjects.Length;
int theIndex = objectBrowser.staticContentsNode.Nodes.IndexOf(objectBrowser.SelectedNode);
if (theIndex<=0) return;
ICustomPaint[] tmp = new ICustomPaint[currentNumberOfStaticObjects];
tmp[0] = mDaPrintDocument.StaticObjects[theIndex];
Array.Copy(mDaPrintDocument.StaticObjects,0,tmp,1,theIndex);
Array.Copy(mDaPrintDocument.StaticObjects,theIndex+1,tmp,theIndex+1,currentNumberOfStaticObjects-theIndex-1);
mDaPrintDocument.StaticObjects = tmp;
objectBrowser.SetData(mDaPrintDocument.Parameters,mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects);
designPane.SetObjects(mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects,mDaPrintDocument.DefaultPageSettings);
objectBrowser.SelectStaticNode(0);
}
#endregion
#endregion
#region Public Methods
public void NewDocument()
{
mDaPrintDocument = new DaPrintDocument(true);
mDaPrintDocument.Parameters = new Parameters();
mDaPrintDocument.StaticObjects = new ICustomPaint[0];
mDaPrintDocument.DynamicObjects = new ICustomPaint[0];
mDaPrintDocument.OnMarginsChanged += new MarginsChangedHandler(RepeatAlignments);
mDaPrintDocument.OnPageSizeChanged += new PageSizeChangedHandler(ResizeDesignPane);
mDaPrintDocument.OnPageLayoutChanged += new PageLayoutChangedHandler(RepeatAlignments);
objectBrowser.SetData(mDaPrintDocument.Parameters,mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects);
designPane.SetSize(mDaPrintDocument.DefaultPageSettings);
designPane.SetObjects(mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects,mDaPrintDocument.DefaultPageSettings);
editPage.Text = "[New document]";
if (!tabPanel.TabPages.Contains(editPage))
tabPanel.TabPages.Add(this.editPage);
this.mDaPrintDocument.Parameters.CollectionModified += new ParametersModified_EventHandler(this.ParametersModified_EventHandler);
}
public void OpenDocument(string filename)
{
mDaPrintDocument = new DaPrintDocument(true);
mDaPrintDocument.setXML(filename);
mDaPrintDocument.OnPageSizeChanged += new PageSizeChangedHandler(ResizeDesignPane);
objectBrowser.SetData(mDaPrintDocument.Parameters,mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects);
designPane.SetSize(mDaPrintDocument.DefaultPageSettings);
designPane.SetObjects(mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects,mDaPrintDocument.DefaultPageSettings);
try
{
ArrayList SelectedNode = new ArrayList();
SelectedNode.Add(objectBrowser.Nodes[0]);
objectBrowser.SelectedNode = objectBrowser.Nodes[0];
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
if (!tabPanel.TabPages.Contains(editPage))
tabPanel.TabPages.Add(this.editPage);
editPage.Text = "[" + filename + "]";
theFilenameToSave = filename;
this.saveAsMenuItem.Enabled = true;
this.saveMenuItem.Enabled = true;
this.closeDocumentMenuItem.Enabled = true;
this.printPreviewMenuItem.Enabled = true;
designPane.Focus();
this.mDaPrintDocument.Parameters.CollectionModified += new ParametersModified_EventHandler(this.ParametersModified_EventHandler);
}
public void RepeatAlignments(object sender)
{
for (int i=0;i<mDaPrintDocument.StaticObjects.Length;i++)
{
mDaPrintDocument.StaticObjects[i].HorizontalAlignment = mDaPrintDocument.StaticObjects[i].HorizontalAlignment;
mDaPrintDocument.StaticObjects[i].VerticalAlignment = mDaPrintDocument.StaticObjects[i].VerticalAlignment;
}
for (int i=0;i<mDaPrintDocument.DynamicObjects.Length;i++)
{
mDaPrintDocument.DynamicObjects[i].HorizontalAlignment = mDaPrintDocument.DynamicObjects[i].HorizontalAlignment;
mDaPrintDocument.DynamicObjects[i].VerticalAlignment = mDaPrintDocument.DynamicObjects[i].VerticalAlignment;
}
}
public void WriteMessage(string theMessage)
{
messagePanel.Text = theMessage;
}
#endregion
#region Private Functions
private void Arrange()
{
tabPanel.TabPages.Clear();
}
private void CloseDocument()
{
mDaPrintDocument = null;
propertyGrid.SelectedObject = null;
objectBrowser.Nodes.Clear();
designPane.ClearSelections();
tabPanel.TabPages.Clear();
this.saveAsMenuItem.Enabled = false;
this.saveMenuItem.Enabled = false;
this.closeDocumentMenuItem.Enabled = false;
this.printPreviewMenuItem.Enabled = false;
this.propertyObject.Text = "";
WriteMessage("Document closed.");
}
private void DeleteNode()
{
if (objectBrowser.SelectedNode==null) return;
if ( objectBrowser.IsStaticNode(objectBrowser.SelectedNode) )
{
int currentNumberOfStaticObjects = mDaPrintDocument.StaticObjects.Length;
ICustomPaint[] tmp = new ICustomPaint[currentNumberOfStaticObjects-1];
int j=0;
for (int i=0;i<mDaPrintDocument.StaticObjects.Length;i++)
{
if ( objectBrowser.SelectedNode.Parent.Nodes[i] != objectBrowser.SelectedNode )
{
tmp[j++] = mDaPrintDocument.StaticObjects[i];
}
}
mDaPrintDocument.StaticObjects = tmp;
objectBrowser.SetData(mDaPrintDocument.Parameters,mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects);
designPane.SetObjects(mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects,mDaPrintDocument.DefaultPageSettings);
designPane.SelectObjects(null);
}
else if ( objectBrowser.IsDynamicNode(objectBrowser.SelectedNode) )
{
int currentNumberOfDynamicObjects = mDaPrintDocument.DynamicObjects.Length;
ICustomPaint[] tmp = new ICustomPaint[currentNumberOfDynamicObjects-1];
int j=0;
for (int i=0;i<mDaPrintDocument.DynamicObjects.Length;i++)
{
if ( objectBrowser.SelectedNode.Parent.Nodes[i] != objectBrowser.SelectedNode )
{
tmp[j++] = mDaPrintDocument.DynamicObjects[i];
}
}
mDaPrintDocument.DynamicObjects = tmp;
objectBrowser.SetData(mDaPrintDocument.Parameters,mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects);
designPane.SetObjects(mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects,mDaPrintDocument.DefaultPageSettings);
designPane.SelectObjects(null);
}
}
private void DoClose()
{
this.Close();
Application.Exit();
}
private void duplicateStaticObject()
{
int currentNumberOfStaticObjects = mDaPrintDocument.StaticObjects.Length;
int theIndex = objectBrowser.staticContentsNode.Nodes.IndexOf(objectBrowser.SelectedNode);
if (theIndex<0) return;
ICustomPaint[] tmp = new ICustomPaint[currentNumberOfStaticObjects+1];
ICustomPaint duplicate = mDaPrintDocument.StaticObjects[theIndex].Clone() as ICustomPaint;
duplicate.X += 10;
duplicate.Y -= 10;
tmp[currentNumberOfStaticObjects] = duplicate;
Array.Copy(mDaPrintDocument.StaticObjects,0,tmp,0,currentNumberOfStaticObjects);
mDaPrintDocument.StaticObjects = tmp;
objectBrowser.SetData(mDaPrintDocument.Parameters,mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects);
designPane.SetObjects(mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects,mDaPrintDocument.DefaultPageSettings);
objectBrowser.SelectStaticNode(currentNumberOfStaticObjects);
}
private void duplicateDynamicObject()
{
int currentNumberOfDynamicObjects = mDaPrintDocument.DynamicObjects.Length;
int theIndex = objectBrowser.dynamicContentsNode.Nodes.IndexOf(objectBrowser.SelectedNode);
if (theIndex<0) return;
ICustomPaint[] tmp = new ICustomPaint[currentNumberOfDynamicObjects+1];
ICustomPaint duplicate = mDaPrintDocument.DynamicObjects[theIndex].Clone() as ICustomPaint;
duplicate.X += 10;
duplicate.Y -= 10;
tmp[currentNumberOfDynamicObjects] = duplicate;
Array.Copy(mDaPrintDocument.DynamicObjects,0,tmp,0,currentNumberOfDynamicObjects);
mDaPrintDocument.DynamicObjects = tmp;
objectBrowser.SetData(mDaPrintDocument.Parameters,mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects);
designPane.SetObjects(mDaPrintDocument.StaticObjects,mDaPrintDocument.DynamicObjects,mDaPrintDocument.DefaultPageSettings);
objectBrowser.SelectDynamicNode(currentNumberOfDynamicObjects);
}
private void SwitchObjects(ICustomPaint[] theObjects,int firstIndex, int secondIndex)
{
ICustomPaint tmp = theObjects[secondIndex];
theObjects[secondIndex] = theObjects[firstIndex];
theObjects[firstIndex] = tmp;
}
private void ResizeDesignPane(object sender)
{
designPane.SetSize(mDaPrintDocument.DefaultPageSettings);
RepeatAlignments(mDaPrintDocument);
}
#endregion
#region Private Properties
private int FindDynamicObject(ICustomPaint t)
{
for (int i=0;i<mDaPrintDocument.DynamicObjects.Length;i++)
{
if ( mDaPrintDocument.DynamicObjects[i] == t )
return i;
}
return -1;
}
private int FindStaticObject(ICustomPaint t)
{
for (int i=0;i<mDaPrintDocument.StaticObjects.Length;i++)
{
if ( mDaPrintDocument.StaticObjects[i] == t )
return i;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -