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

📄 frmdocument.cs

📁 用c#编的一个invoice打印程序
💻 CS
📖 第 1 页 / 共 5 页
字号:

		private void EnableDocMenuItems()
		{
			if(!this.Visible)
				return;

			frmMain mdi=this.ParentForm as frmMain;
			DevComponents.DotNetBar.DotNetBarManager m=mdi.dotNetBarManager1;

			// Disabled Edit items
			m.Items["bPaste"].Enabled=true;
			m.Items["bSelectAll"].Enabled=true;
			m.Items["bFind"].Enabled=true;
			m.Items["bFindNext"].Enabled=true;
			m.Items["bReplace"].Enabled=true;

			// Disable Format items
			m.Items["bAlignLeft"].Enabled=true;
			m.Items["bAlignRight"].Enabled=true;
			m.Items["bAlignCenter"].Enabled=true;

			m.Items["bBold"].Enabled=true;
			m.Items["bItalic"].Enabled=true;
			m.Items["bUnderline"].Enabled=true;
			m.Items["bStrikethrough"].Enabled=true;

			m.Items["bTextColor"].Enabled=true;

			EnableSelectionItems();
		}

		private void FormDeactivated(object sender, System.EventArgs e)
		{
			DisableDocMenuItems();
		}

		private void DisableDocMenuItems()
		{
			frmMain mdi=this.ParentForm as frmMain;
			DevComponents.DotNetBar.DotNetBarManager m=mdi.dotNetBarManager1;

			// Disabled Edit items
			m.Items["bCut"].Enabled=false;
			m.Items["bCopy"].Enabled=false;
			m.Items["bPaste"].Enabled=false;
			m.Items["bDelete"].Enabled=false;
			m.Items["bSelectAll"].Enabled=false;
			m.Items["bFind"].Enabled=false;
			m.Items["bFindNext"].Enabled=false;
			m.Items["bReplace"].Enabled=false;

			// Disable Format items
			m.Items["bBold"].Enabled=false;
			m.Items["bItalic"].Enabled=false;
			m.Items["bUnderline"].Enabled=false;
			m.Items["bStrikethrough"].Enabled=false;
			m.Items["bAlignLeft"].Enabled=false;
			m.Items["bAlignRight"].Enabled=false;
			m.Items["bAlignCenter"].Enabled=false;
			m.Items["bTextColor"].Enabled=false;
		}

		/// <summary>
		/// Process Menu/Toolbar commands
		/// </summary>
		/// <param name="cmd">Command string</param>
		public void ExecuteCommand(string cmd, object data)
		{
			//			switch(cmd)
			//			{
			//				// Edit Menu
			//				case "bUndo":
			//					rtfText.Undo();
			//					break;
			//				case "bCut":
			//					rtfText.Cut();
			//					break;
			//				case "bCopy":
			//					rtfText.Copy();
			//					break;
			//				case "bPaste":
			//					rtfText.Paste();
			//					break;
			//				case "bDelete":
			//					rtfText.SelectedText="";
			//					break;
			//				case "bSelectAll":
			//					rtfText.SelectAll();
			//					break;
			//				case "bFindNext":
			//					MessageBox.Show("Not implemented yet.");
			//					break;
			//				case "bReplace":
			//					MessageBox.Show("Not implemented yet.");
			//					break;
			//					// Format menu
			//				case "bBold":
			//				{
			//					if(rtfText.SelectionFont.Bold)
			//						rtfText.SelectionFont=new Font(rtfText.SelectionFont,(rtfText.SelectionFont.Style & ~(rtfText.SelectionFont.Style & FontStyle.Bold)));
			//					else
			//						rtfText.SelectionFont=new Font(rtfText.SelectionFont,(rtfText.SelectionFont.Style | FontStyle.Bold));
			//					break;
			//				}
			//				case "bItalic":
			//				{
			//					if(rtfText.SelectionFont.Italic)
			//						rtfText.SelectionFont=new Font(rtfText.SelectionFont,(rtfText.SelectionFont.Style & ~(rtfText.SelectionFont.Style & FontStyle.Italic)));
			//					else
			//						rtfText.SelectionFont=new Font(rtfText.SelectionFont,(rtfText.SelectionFont.Style | FontStyle.Italic));
			//					break;
			//				}
			//				case "bUnderline":
			//				{
			//					if(rtfText.SelectionFont.Underline)
			//						rtfText.SelectionFont=new Font(rtfText.SelectionFont,(rtfText.SelectionFont.Style & ~(rtfText.SelectionFont.Style & FontStyle.Underline)));
			//					else
			//						rtfText.SelectionFont=new Font(rtfText.SelectionFont,(rtfText.SelectionFont.Style | FontStyle.Underline));
			//					break;
			//				}
			//				case "bStrikethrough":
			//					if(rtfText.SelectionFont.Strikeout)
			//						rtfText.SelectionFont=new Font(rtfText.SelectionFont,(rtfText.SelectionFont.Style & ~(rtfText.SelectionFont.Style & FontStyle.Strikeout)));
			//					else
			//						rtfText.SelectionFont=new Font(rtfText.SelectionFont,(rtfText.SelectionFont.Style | FontStyle.Strikeout));
			//					break;
			//				case "bAlignLeft":
			//					rtfText.SelectionAlignment=HorizontalAlignment.Left;
			//					break;
			//				case "bAlignCenter":
			//					rtfText.SelectionAlignment=HorizontalAlignment.Center;
			//					break;
			//				case "bAlignRight":
			//					rtfText.SelectionAlignment=HorizontalAlignment.Right;
			//					break;
			//				case "bTextColor":
			//				{
			//					if(data!=null && data is Color)
			//						rtfText.SelectionColor=(Color)data;
			//					break;
			//				}
			//				case "bFind":
			//				{
			//					if(data!=null)
			//					{
			//						string searchText=data.ToString();
			//						rtfText.Find(searchText,rtfText.SelectionStart+rtfText.SelectionLength,RichTextBoxFinds.None);
			//					}
			//					break;
			//				}
			//			}
			//			DocumentChanged=true;
			//			EnableSelectionItems();
		}

		private void rtfText_TextChanged(object sender, System.EventArgs e)
		{
			DocumentChanged=true;
		}

		public void OpenFile(string filename)
		{
			//			if(filename.Substring(filename.Length-4,4).ToLower()==".txt")
			//				rtfText.LoadFile(filename,RichTextBoxStreamType.PlainText);
			//			else
			//                rtfText.LoadFile(filename,RichTextBoxStreamType.RichText);
			//			this.FileName=filename;
			//			DocumentChanged=false;
		}

		public void SaveFile()
		{
			//			if(this.FileName.Substring(this.FileName.Length-4,4).ToLower()==".txt")
			//				rtfText.SaveFile(this.FileName,RichTextBoxStreamType.PlainText);
			//			else
			//				rtfText.LoadFile(this.FileName,RichTextBoxStreamType.RichText);
			//            
			//			DocumentChanged=false;
		}

		private void FormClosed(object sender, System.EventArgs e)
		{
			frmMain mdi=this.ParentForm as frmMain;
			DevComponents.DotNetBar.DotNetBarManager m=mdi.dotNetBarManager1;
			m.Bars["barStatus"].Items["lPosition"].Text="";
			DisableDocMenuItems();
		}

		private void FormClosing(object sender, System.ComponentModel.CancelEventArgs e)
		{
			if(this.DocumentChanged)
			{
				DialogResult dlg=MessageBox.Show(this,"Document '"+this.FileName+"' has changed. Save changes?","Notepad",MessageBoxButtons.YesNoCancel);
				if(dlg==DialogResult.Cancel)
				{
					e.Cancel=true;
				}
				else if(dlg==DialogResult.Yes)
				{
					if(this.FileName=="")
						if(this.FileName!="")
							SaveFile();
				}
			}
		}

		private void FormVisibleChanged(object sender, System.EventArgs e)
		{
			if(this.Visible)
				EnableDocMenuItems();
			else
				DisableDocMenuItems();
		}

		private void frmDocument_Load(object sender, System.EventArgs e)
		{
			try
			{
				string path=System.IO.Path.GetDirectoryName(Application.ExecutablePath)+@"\setup.xml";
				System.Xml.XmlDocument xmldoc=new System.Xml.XmlDocument();
				xmldoc.Load(path);
				forOpen(this,ref xmldoc);

			}
			catch
			{
				MessageBox.Show("未能打开发票信息,可能该发票不存在或数据已经被损坏!");
			}

		}
		public void Save()
		{
			forCheckCbx(this);
			if(this.TbxID.Text.Trim().Length==0)
			{
				MessageBox.Show("请填入发票编号");
				this.TbxID.Focus();
				return;
			}
			string strxml=@"<?xml version='1.0' encoding='utf-8' ?><Bill></Bill>";
			System.Xml.XmlDocument xmldoc=new System.Xml.XmlDocument();
			xmldoc.LoadXml(strxml);
			forSave(this,ref xmldoc);
			string path=System.IO.Path.GetDirectoryName(Application.ExecutablePath)+@"\BillData\"+this.TbxID.Text+@".xml";
			xmldoc.Save(path);
			strxml=@"<?xml version='1.0' encoding='utf-8' ?><Setup></Setup>";
			xmldoc=new System.Xml.XmlDocument();
			xmldoc.LoadXml(strxml);
			forSaveList(this,ref xmldoc);
			path=System.IO.Path.GetDirectoryName(Application.ExecutablePath)+@"\setup.xml";
			xmldoc.Save(path);
		}
		private void forSave(System.Windows.Forms.Control crl,ref System.Xml.XmlDocument xmldoc)
		{
			
			for(int i=0;i<crl.Controls.Count;i++)
			{
				if(crl.Controls[i].Controls.Count>0)
				{
					forSave(crl.Controls[i],ref xmldoc);
				}
				if(crl.Controls[i].Name.Length<=3)
				{
					continue;
				}
				if(crl.Controls[i].Name.Substring(0,3)=="Tbx")
				{
					XmlElement newTitle=xmldoc.CreateElement(crl.Controls[i].Name);
					try
					{
						newTitle.InnerText=crl.Controls[i].Text;
					}
					catch
					{
						newTitle.InnerText="";
					}
					xmldoc["Bill"].AppendChild(newTitle);
				}
				if(crl.Controls[i].Name.Substring(0,3)=="Cbx")
				{
					XmlElement newTitle=xmldoc.CreateElement(crl.Controls[i].Name);
					try
					{
						newTitle.InnerText=crl.Controls[i].Text;
					}
					catch
					{
						newTitle.InnerText="";
					}
					xmldoc["Bill"].AppendChild(newTitle);
				}
				if(crl.Controls[i].Name.Substring(0,3)=="Lbx")
				{
					ListView lvi=crl.Controls[i] as ListView;
					for(int j=0;j<lvi.Items.Count;j++)
					{
						for(int k=0;k<lvi.Items[j].SubItems.Count;k++)
						{
							XmlElement newTitle=xmldoc.CreateElement(crl.Controls[i].Name+j.ToString()+k.ToString());
							newTitle.InnerText=lvi.Items[j].SubItems[k].Text;
							xmldoc["Bill"].AppendChild(newTitle);
						}
					}
				}
			}
		}

		private void forSaveList(System.Windows.Forms.Control crl,ref System.Xml.XmlDocument xmldoc)
		{
			for(int i=0;i<crl.Controls.Count;i++)
			{
				if(crl.Controls[i].Controls.Count>0)
				{
					forSaveList(crl.Controls[i],ref xmldoc);
				}
				if(crl.Controls[i].Name.Length<=3)
				{
					continue;
				}
				if(crl.Controls[i].Name.Substring(0,3)=="Cbx")
				{
					XmlElement newTitle=xmldoc.CreateElement(crl.Controls[i].Name);
					newTitle.InnerText="";
					ComboBox cbx=crl.Controls[i] as ComboBox;
					bool isexist=false;
					for(int j=0;j<cbx.Items.Count;j++)
					{
						if(cbx.Items[j].ToString()==crl.Controls[i].Text) isexist=true;
					}
					if(!isexist&&crl.Controls[i].Text.Trim().Length!=0)
					{
						XmlElement newItem=xmldoc.CreateElement("Item");
						newItem.InnerText=crl.Controls[i].Text;
						newTitle.AppendChild(newItem);
					}
					for(int j=0;j<cbx.Items.Count;j++)
					{
						XmlElement newItem=xmldoc.CreateElement("Item");
						newItem.InnerText=cbx.Items[j].ToString();
						newTitle.AppendChild(newItem);
					}
					xmldoc["Setup"].AppendChild(newTitle);
				}
			}
		}

		private void forOpen(System.Windows.Forms.Control crl,ref System.Xml.XmlDocument xmldoc)
		{
			
			for(int i=0;i<crl.Controls.Count;i++)
			{
				if(crl.Controls[i].Controls.Count>0)
				{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -