找回密码
 立即注册

QQ登录

只需一步,快速开始

tuifei

论坛元老

5

主题

16

帖子

4607

积分

论坛元老

积分
4607

活字格认证

tuifei
论坛元老   /  发表于:2014-4-8 09:02  /   查看:7719  /  回复:5
使用2012 v2,系统自带MdiTabs的例子。

要求就是对MdiTabs的三个TabPage(打开文件,Log, 路径)进行任意的排列组合,
包括改变分组改变停靠位置改变C1DockingTab的高度宽度
关闭程序后下次再打开程序的时候还能再现关闭前的位置和分组信息。

请问,为了实现上面的要求,我需要保存哪些信息,怎样复原?

5 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-4-8 16:15:00
沙发
回复 1楼tuifei的帖子

请参考:

  1. private void SaveBtn_Click(object sender, EventArgs e)
  2.         {
  3.             C1.Win.C1Command.C1DockingTab.SaveLayout(this, "test.xml");
  4.         }

  5.         private void RestoreBtn_Click(object sender, EventArgs e)
  6.         {
  7.             C1.Win.C1Command.C1DockingTab.RestoreLayout(this, "test.xml");
  8.         }
复制代码
回复 使用道具 举报
tuifei
论坛元老   /  发表于:2014-4-9 09:38:00
板凳
请问不用SaveLayout, 自己将必要的信息写成xml, 然后保存和导入,可能吗?怎么做?
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-9 10:28:00
地板
回复 3楼tuifei的帖子

可以的, 自己序列化想要的东西:按照顺序保存为XML或者二进制流。

要保存的属性,请参考拖如TabControl--VS自动生成的代码,如:

  1. //
  2.             // tabSidebar
  3.             //
  4.             this.tabSidebar.Alignment = System.Windows.Forms.TabAlignment.Bottom;
  5.             this.tabSidebar.BorderStyle = System.Windows.Forms.BorderStyle.None;
  6.             this.tabSidebar.CanAutoHide = true;
  7.             this.tabSidebar.CanCloseTabs = true;
  8.             this.tabSidebar.CanMoveTabs = true;
  9.             this.tabSidebar.Controls.Add(this.c1DockingTabPage2);
  10.             this.tabSidebar.Controls.Add(this.c1DockingTabPage1);
  11.             this.tabSidebar.Controls.Add(this.c1DockingTabPage5);
  12.             this.tabSidebar.Controls.Add(this.c1DockingTabPage6);
  13.             this.tabSidebar.Location = new System.Drawing.Point(0, 0);
  14.             this.tabSidebar.Name = "tabSidebar";
  15.             this.tabSidebar.SelectedIndex = 3;
  16.             this.tabSidebar.ShowCaption = true;
  17.             this.tabSidebar.Size = new System.Drawing.Size(242, 504);
  18.             this.tabSidebar.TabIndex = 0;
  19.             this.tabSidebar.TabSizeMode = C1.Win.C1Command.TabSizeModeEnum.Fit;
  20.             this.tabSidebar.TabsSpacing = 0;
  21.             //
  22.             // c1DockingTabPage2
  23.             //
  24.             this.c1DockingTabPage2.CaptionVisible = true;
  25.             this.c1DockingTabPage2.CloseTabBehavior = C1.Win.C1Command.CloseTabBehavior.Hide;
  26.             this.c1DockingTabPage2.Controls.Add(this.dirView);
  27.             this.c1DockingTabPage2.Location = new System.Drawing.Point(3, 0);
  28.             this.c1DockingTabPage2.Name = "c1DockingTabPage2";
  29.             this.c1DockingTabPage2.Size = new System.Drawing.Size(239, 479);
  30.             this.c1DockingTabPage2.TabIndex = 0;
  31.             this.c1DockingTabPage2.Text = "Directory Listing";
  32.             this.c1DockingTabPage2.Closed += new System.EventHandler(this.c1DockingTabPage2_Closed);
复制代码
回复 使用道具 举报
tuifei
论坛元老   /  发表于:2014-4-9 10:57:00
5#
:strong:   明白了,谢谢。可以结帖了。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-9 12:34:00
6#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部