⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.cs

📁 是用c#实现的一个有关于报表设计的程序代码
💻 CS
📖 第 1 页 / 共 5 页
字号:

			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 + -