ang*_*son 11 .net components tabpage tabpanel dockpanel
我想构建一个用户界面,由于历史原因,它有很多"列"信息.其中许多在所有情况下都与所有用户无关,所以我想我会看到停靠面板,以允许用户根据他们的工作场景隐藏或重新排列列.
这是.NET 3.5中的Winforms.
因此,我想要以下内容:
示例样机http://images.vkarlsen.no/so/2902953/dock-test.png
到目前为止,我已经尝试了以下组件包,没有运气:
Telerik的
允许我停靠在标签页内,但停靠面板无法从一个标签页移动到另一个标签页.当尝试将浮动面板拖放到与其来源不同的选项卡页面上时,它会显示停靠栏将成功,但是当它被丢弃时,它将停靠在其所有者容器上.
Divelements SandDoc
与Telerik相同的问题.
DevExpress XtraBars
与Telerik相同的问题.
http://sourceforge.net/projects/dockpanelsuite/
同样的问题,停靠站内容窗口只能属于一个停靠面板,这意味着它无法从一个选项卡迁移到另一个选项卡.
基本上,有没有人知道任何这样的组件(包)可以让我做我想要的?
编辑:好的,我试过让Sourceforge控件在上面工作,但我看不出如何使这个工作.
基本上,这就是我需要做的事情:
如果我理解下面的答案提到这个控件,我应该使用DockPanel而不是TabControl,而DockPane而不是TabPage,但据我所知,这只能让我能够停靠和取消选项卡页面,而这不是我想要的是.
无论如何,这是一个程序文件,只需创建一个Winforms项目,从sourceforge项目添加对.dll的引用,并在Program.cs中粘贴此代码:
using System;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace DockTest
{
public class DockWindow1 : DockContent
{
public DockWindow1()
{
TabText = "Dock-window #1";
DockPanel panel = new DockPanel();
panel.Dock = DockStyle.Fill;
Controls.Add(panel);
// tried this related to the exceptions
// this.DockPanel = panel;
}
}
public class DockWindow2 : DockContent
{
public DockWindow2()
{
TabText = "Dock-window #2";
ListBox lb = new ListBox();
Controls.Add(lb);
lb.Dock = DockStyle.Fill;
lb.Items.Add("Listbox");
}
}
public class MainForm : Form
{
public MainForm()
{
DockPanel panel = new DockPanel();
panel.Dock = DockStyle.Fill;
panel.DocumentStyle = DocumentStyle.DockingWindow;
Controls.Add(panel);
// exceptions here
DockPane dp = panel.DockPaneFactory.CreateDockPane(
new DockWindow1(), DockState.Document, true);
dp.AllowDockDragAndDrop = true;
dp.AllowDrop = true;
DockWindow1 w1 = new DockWindow1();
w1.Show(panel);
DockWindow2 w2 = new DockWindow2();
w2.Show(panel);
}
}
static class Program
{
[STAThread]
static void Main()
{
Application.Run(new MainForm());
}
}
}
Run Code Online (Sandbox Code Playgroud)
试试这个.
http://sourceforge.net/projects/dockpanelsuite/
如果可能的话,您可以尝试使用DockPane而不是Tabs.DockPane将允许您将元素从一个窗格移动到另一个窗格.
1.DockPanel替换TabControl
2.DockPane替换TabPages
DockPane dp = dockPanel.DockPaneFactory.CreateDockPane(new DockForm(), DockState.Document, true);
dp.AllowDockDragAndDrop = true;
dp.AllowDrop = true;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9573 次 |
最近记录: |