//save cmddoc to file public void SaveTab(List <Tabcontent> tabs, string path) { List <string> alllines = new List <string>(); for (int i = 0; i != tabs.Count; i++) { Tabcontent tab = tabs[i]; alllines.Add("<tab {" + tab.tabname + "}>"); for (int j = 0; j != tab.buttons.Length; j++) { Buttontype btn = tab.buttons[j]; if (btn.btnnumber != -1) { alllines.Add("<button {" + btn.btnnumber + "} {" + btn.btnname + "}>"); alllines.Add("<data>"); for (int k = 0; k != btn.data.Count; k++) { alllines.Add(btn.data[k]); } alllines.Add("</data>"); alllines.Add("</button>"); } } alllines.Add("</tab>"); } File.WriteAllLines(path, alllines.ToArray()); //File.WriteAllText(path, alllines.ToString()); /* * if (!File.Exists(path)) * { * StreamWriter sw = File.AppendText(path); * File.a * File.WriteAllLines(path, alllines.ToArray()); * } * else * { * File.WriteAllLines(path, alllines.ToArray()); * } */ }
//get cmddoc from file public List <Tabcontent> getTabs(string path) { //Cmddocument cmddoc = new Cmddocument(); List <Tabcontent> tabs = new List <Tabcontent>(); if (File.Exists(path)) { string[] alllines; alllines = File.ReadAllLines(path); //int i = 0; int tabno = 0; int tabstart = 0; for (int i = 0; i != alllines.Length;) { string line = alllines[i]; Tabcontent tab = new Tabcontent(""); if (line.StartsWith("<tab")) { tabstart = i; string tabname = line.Substring(line.IndexOf("{") + 1, line.IndexOf("}") - line.IndexOf("{") - 1); tab = new Tabcontent(tabname); int j = 0; i++; for (int newtab = i; newtab != alllines.Length; newtab = i) { string newline = alllines[i]; if (newline.StartsWith("</tab")) { tabs.Add(tab); //cmddoc.[tabno] = tab; tabno++; i++; break; } else if (newline.StartsWith("<button")) { int btnstart = newtab; Buttontype btn = new Buttontype(int.Parse(newline.Substring(newline.IndexOf("{") + 1, newline.IndexOf("}") - newline.IndexOf("{") - 1)), newline.Substring(newline.LastIndexOf("{") + 1, newline.LastIndexOf("}") - newline.LastIndexOf("{") - 1)); i++; for (int newbtn = i; newbtn != alllines.Length; newbtn = i) { string newbtnline = alllines[i]; if (newbtnline.StartsWith("</button")) { i++; break; } else if (newbtnline.StartsWith("<data") || newbtnline.StartsWith("</data")) { i++; continue; } else { if (!newbtnline.Contains("<icon>") && !newbtnline.Contains("</icon>") && !newbtnline.Contains("<desc>") && !newbtnline.Contains("</desc>")) { btn.data.Add(newbtnline); i++; } else { i++; } } } //tab.buttons[j] = btn; tab.buttons[btn.btnnumber] = btn; j++; } } } else { i++; continue; } } } return(tabs); }
//modify current tab' name //add a new tab private void AddTab(Tabcontent tc) { NewTabPage Page; TableLayoutPanel layoutPanel = new TableLayoutPanel(); layoutPanel.RowCount = 4; layoutPanel.ColumnCount = 8; layoutPanel.Dock = DockStyle.Fill; //tc has no buttons,add a empty page if (tc.tabname == "") { Page = new NewTabPage(); Page.Name = "Page" + _tabindex.ToString(); Page.Text = "tabPage" + _tabindex.ToString(); Page.TabIndex = _tabindex; Page.Controls.Add(layoutPanel); this.tabControl1.Controls.Add(Page); //layout button //int x = 8, y = 10; for (int i = 0; i != 32; i++) { TabButton tb = new TabButton(); tb._index = i; tb.Dock = DockStyle.Fill; toolTip1.SetToolTip(tb, tb.Text); /*Page.Controls.Add(tb); tb.Location = new System.Drawing.Point(x, y); x = x + tb.Width + 7; if (x + tb.Width > Page.Width) { x = 8; y = y + tb.Height + 6; }*/ for (int k = 0; k < layoutPanel.RowCount; k++) { layoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); for (int j = 0; j < layoutPanel.ColumnCount; j++) { layoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); layoutPanel.Controls.Add(tb); } } tb.Click += new System.EventHandler(command_button_Click); tb.MouseDown += new MouseEventHandler(command_button_MouseDown); } } //tc has buttons else { Page = new NewTabPage(); Page.Name = tc.tabname; Page.Text = tc.tabname; Page.TabIndex = _tabindex; Page.Controls.Add(layoutPanel); this.tabControl1.Controls.Add(Page); //layout button //int x = 8, y = 10; for (int i = 0; i != 32; i++) { TabButton tb = new TabButton(); tb._data = tc.buttons[i].data; tb._index = i; tb.Name = tc.buttons[i].btnname; tb.Text = tc.buttons[i].btnname; tb.Dock = DockStyle.Fill; toolTip1.SetToolTip(tb, tb.Text); /*Page.Controls.Add(tb); tb.Location = new System.Drawing.Point(x, y); x = x + tb.Width + 7; if (x + tb.Width > Page.Width) { x = 8; y = y + tb.Height + 6; }*/ for (int k = 0; k < layoutPanel.RowCount; k++) { layoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); for (int j = 0; j < layoutPanel.ColumnCount; j++) { layoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); layoutPanel.Controls.Add(tb); } } tb.Click += new System.EventHandler(command_button_Click); tb.MouseDown += new MouseEventHandler(command_button_MouseDown); } } #region 三种设置某个选项卡为当前选项卡的方法 //this.tabControl1.SelectedIndex = index; //this.tabControl1.SelectedTab = Page; //this.tabControl1.SelectTab("Page" + index.ToString()); #endregion _tabindex++; }
private List<Tabcontent> GetCurrentTabs() { List<Tabcontent> tabs = new List<Tabcontent>(); //get current tabs in mainform foreach (NewTabPage ntp in this.tabControl1.TabPages) { Tabcontent tab = new Tabcontent(); tab.tabname = ntp.Name; foreach (Control item in ntp.Controls) { if (item is TableLayoutPanel) { TableLayoutPanel layoutPanel = item as TableLayoutPanel; foreach (Control btitem in layoutPanel.Controls) { if (btitem is TabButton) { TabButton button = btitem as TabButton; Buttontype bt = new Buttontype(); bt.btnname = button.Name; bt.btnnumber = button._index; bt.data = button._data; tab.buttons[button._index] = bt; } } } } tabs.Add(tab); } return tabs; }
private void Form1_Load(object sender, EventArgs e) { for (int i = 0; i < Constant.DEVICE_LIST.Length; i++) { this.comboBox_instrumentprefix.Items.Add(Constant.DEVICE_LIST[i]); } string filepath = localpath +@"\default.ts"; if(File.Exists(filepath)) { TsFileHelper tfh = new TsFileHelper(); //get tabs from file List<Tabcontent> tabs = tfh.getTabs(filepath); //delete all current pages this.tabControl1.TabPages.Clear(); //init tabindex this._tabindex = 0; //add tabpage from tabs if(tabs.Count!=0) { foreach (Tabcontent tab in tabs) { this.AddTab(tab); } } else { Tabcontent tc = new Tabcontent(); this.AddTab(tc); } } else { string filePath = System.IO.Path.Combine(localpath, "default.ts"); File.Create(filePath); Tabcontent tc = new Tabcontent(); this.AddTab(tc); } //load config Dictionary<string, string> tempaddr = new Dictionary<string, string>(); ConfigHelper ch = new ConfigHelper(); tempaddr = ch.GetAddr(); this.addr.SetAddress(tempaddr,this.link); //load color this.backcolor = ch.GetConfig("disp_backcolor"); if (this.backcolor != "") { this.dataDisplayBox.BackColor = ColorTranslator.FromHtml(this.backcolor); } this.forecolor = ch.GetConfig("disp_forecolor"); if (this.forecolor != "") { this.dataDisplayBox.ForeColor = ColorTranslator.FromHtml(this.forecolor); } //load font FontConverter fc = new FontConverter(); this.fontstyle = ch.GetConfig("disp_font"); if (this.fontstyle != "") { this.dataDisplayBox.Font = (Font)fc.ConvertFromString(this.fontstyle); } //init instrument status //initInstrumentStatus(this.addr, this.addr,true); this.initInstrumentStatusbyVisa32(this.addr, this.addr, true); foreach (Control ctl in this.SerialpropertyBox.Controls) { if (ctl.Name == "label_rruport") { ctl.Text = this.addr.RRU; } else if (ctl.Name == "label_rrubaud") { ctl.Text = this.addr.Baudrate_rru; } else if (ctl.Name == "label_serial2port") { ctl.Text = this.addr.SERIAL2; } else if (ctl.Name == "label_serial2baud") { ctl.Text = this.addr.Baudrate_com2; } } //ipep ipep = new IPEndPoint(IPAddress.Any, int.Parse(this.addr.Server_Port)); //log LogManager.LogFielPrefix = "RTT "; //string logPath = System.Environment.CurrentDirectory + @"\log\"; if (!Directory.Exists(logPath)) Directory.CreateDirectory(logPath); LogManager.LogPath = logPath; LogManager.WriteLog(LogFile.Trace, "RTT start, version is "+ Assembly.GetExecutingAssembly().GetName().Version.ToString()); //update if (!Directory.Exists(updatePath)) Directory.CreateDirectory(updatePath); if (!Directory.Exists(backuppath)) Directory.CreateDirectory(backuppath); //snapshot //_snapPath = System.Environment.CurrentDirectory + @"\snapshot\"; if (!Directory.Exists(_snapPath)) Directory.CreateDirectory(_snapPath); //rxevm if (!Directory.Exists(_rxevmPath)) Directory.CreateDirectory(_rxevmPath); //cmd queue process thread cmdProcessThread_run = true; _cmdProcessThread = new Thread(new ThreadStart(cmdProcessThread)); _cmdProcessThread.Start(); //cqEventSender.QueueChanged += new cmdQueueEventSender.QueueChangHandler(cmdProcessThread); this.Text = "RTT v" + Assembly.GetExecutingAssembly().GetName().Version.ToString(); this.label_terminal_IP.Text = this.addr.DU_IP; this.Show(); //this.InputBox.Focus(); }
//get cmddoc from file public List<Tabcontent> getTabs(string path) { //Cmddocument cmddoc = new Cmddocument(); List<Tabcontent> tabs = new List<Tabcontent>(); if (File.Exists(path)) { string[] alllines; alllines = File.ReadAllLines(path); //int i = 0; int tabno = 0; int tabstart = 0; for (int i = 0; i != alllines.Length;) { string line = alllines[i]; Tabcontent tab = new Tabcontent(""); if (line.StartsWith("<tab")) { tabstart = i; string tabname = line.Substring(line.IndexOf("{") + 1, line.IndexOf("}") - line.IndexOf("{") - 1); tab = new Tabcontent(tabname); int j = 0; i++; for (int newtab = i; newtab != alllines.Length; newtab = i) { string newline = alllines[i]; if (newline.StartsWith("</tab")) { tabs.Add(tab); //cmddoc.[tabno] = tab; tabno++; i++; break; } else if (newline.StartsWith("<button")) { int btnstart = newtab; Buttontype btn = new Buttontype(int.Parse(newline.Substring(newline.IndexOf("{") + 1, newline.IndexOf("}") - newline.IndexOf("{") - 1)), newline.Substring(newline.LastIndexOf("{") + 1, newline.LastIndexOf("}") - newline.LastIndexOf("{") - 1)); i++; for (int newbtn = i; newbtn != alllines.Length; newbtn = i) { string newbtnline = alllines[i]; if (newbtnline.StartsWith("</button")) { i++; break; } else if (newbtnline.StartsWith("<data") || newbtnline.StartsWith("</data")) { i++; continue; } else { if (!newbtnline.Contains("<icon>") && !newbtnline.Contains("</icon>") && !newbtnline.Contains("<desc>") && !newbtnline.Contains("</desc>")) { btn.data.Add(newbtnline); i++; } else { i++; } } } //tab.buttons[j] = btn; tab.buttons[btn.btnnumber] = btn; j++; } } } else { i++; continue; } } } return tabs; }