C# WinForm控件之Dock顺序调整

后来在使用过程中发现,先创建的控件优先级要高于后创建的控件,优先级高的,在进行置顶或者置底等操作时,就会优先排序,所以在排序时候可以根据这个进行快速处理,很方便,亲测有效!

这是一个免费程序(目前还是测试版),作者不但提供控件, 而且还无偿提供控件的所有源代码,您可以在个人或者商业程序中免费使用DockPresident 地址: http://www.pigtwo.com/CtrlData/WebSite/luxiaoban.htm 如果您下载并且使用了DockPresident,请留下您的感受和意见,也算是对作者所做工作的肯定。 下面是她的readme文件中的内容: 作为Delphi的忠实用户,我想大家对Delphi中的停靠窗体应该比较熟悉吧,是不是也希望自己编的程序也具有这样的功能? 使她看起来更漂亮,更专业,更方便。本人做的一套停靠控件DockPresident正好能满足您的要求,DockPresident包含五个控件, 她们分别是TlbDockServer, TlbDockClient, TlbDelphiDockStyle, TlbVCDockStyle, TlbVIDDockStyle。 只要在主窗口上放上TDockServer控件,在一般窗口上放上TlbDockClient控件,这两个窗体就有了停靠功能。不用编写一行代码, 效果和Delphi的IDE一样,并且比她功能更强。并且两个都放了TlbDockClient控件的窗体还可以相互停靠, 分别停靠成平铺型和分页型的窗体。用户还可以改变停靠的风格, TlbDockServer和TlbDockClient都有一个属性叫做DockStyle, 只要把TlbDelphiDockStyle, TlbVCDockStyle或者TlbVIDDockStyle控件赋值给DockStyle属性, 用户您就拥有了Delphi, Visual C++或者Visual InterDev的停靠风格。 这套控件还有很多属性供用户设置,来改变她们的停靠特性。 在当前文件夹中又有一些子文件夹,分别是: Source: 控件的源代码. SupportClass: 一个第三方控件wmEdit的DCU文件,用于Demo程序中. Help: 帮助文件,请读者务必仔细阅读,里面有控件的详细说明. Document: 文档资料,如果读者想对DockPresident有更深入的了解, 阅读里面的文章. Demo: 例子程序,用来演示DockPresident控件的使用方法和效果,里面有两个程序AdviceDemo和VCDemo. AdviceDemo程序演示了所有的DockPresident控件的用法, VCDemo主要用来演示TlbVCDockStyle的用法.由于wmEdit的原因,在VCDemo程序中有两个工程文件, 分别是VCDemoPro_D5和VCDemoPro_D6,如果用户使用的是Delphi5.0,请使用VCDemoPro_D5工程, 反之就使用VCDemoPro_D6. Bin 用来存储Source文件夹中对应文件的DCU,编译后会产生,用户可以把它删除掉. 控件安装: 如果用户使用的是Delphi5.0,请打开DockControl_D5.dpk文件安装,如果用户使用的是Delphi6.0, 请打开DockControl_D6.dpk文件安装.控件安装完成后,用户还需要配置一下Delphi, 好让Delphi能找到源文件的路经, 设置方法: 点击Tools菜单的Environment Options,弹出Environment Options对话框, 点击Library页,然后点击Library path右边的按钮, 在弹出的Directories对话框中添加上控件源文件所在的文件夹,比如:D:DockFormControlSource. 如果用户没有配置Delphi,Demo文件夹中的程序也是可以使用的,因为作者已经帮用户设置好了, 但是如果用户要自己做一个全新的程序,请按照前面的方法配置您的Delphi.
要实现以波形图的方式实时显示数据采集卡采集到的数据,可以借助C#中的Chart控件来完成。下面是实现步骤: 1. 在Visual Studio中创建一个Winform项目; 2. 在工具箱中找到Chart控件并将其拖拽到窗体上; 3. 在代码中声明一个Timer计时器控件,用于定时刷新图表数据; 4. 在代码中编写数据采集卡采集数据的代码; 5. 在Timer计时器的Tick事件中,将采集到的数据添加到图表中,并移动图表的X轴; 6. 实时刷新图表,即可实现以波形图的方式实时显示数据采集卡采集到的数据。 下面是完整的代码示例: ```csharp using System; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; namespace WaveformDemo { public partial class Form1 : Form { private Chart chart1; private Timer timer1; private int count = 0; public Form1() { InitializeComponent(); // 初始化Chart控件 chart1 = new Chart(); chart1.Parent = this; chart1.Dock = DockStyle.Fill; chart1.ChartAreas.Add(new ChartArea("Draw")); chart1.Series.Add(new Series("Waveform")); chart1.Series[0].ChartType = SeriesChartType.Line; chart1.Series[0].ChartArea = "Draw"; chart1.Series[0].BorderWidth = 2; chart1.Series[0].Color = System.Drawing.Color.Blue; // 初始化Timer控件 timer1 = new Timer(); timer1.Interval = 1000; timer1.Tick += Timer1_Tick; timer1.Start(); } private void Timer1_Tick(object sender, EventArgs e) { // 采集数据 double data = GetDataFromDAQ(); // 添加数据到图表 chart1.Series[0].Points.AddY(data); count++; // 移动X轴 if (count > chart1.ChartAreas[0].AxisX.Maximum) { chart1.ChartAreas[0].AxisX.Maximum = count; chart1.ChartAreas[0].AxisX.Minimum = count - chart1.ChartAreas[0].AxisX.ScaleView.Size; } // 刷新图表 chart1.Invalidate(); } private double GetDataFromDAQ() { // TODO: 从数据采集卡获取数据 return Math.Sin(count * Math.PI / 180); } } } ``` 在上面的代码中,我们创建了一个Chart控件和一个Timer计时器控件,并在Timer计时器的Tick事件中实时刷新图表。在GetDataFromDAQ方法中,我们模拟了从数据采集卡获取数据的过程。你需要根据实际情况修改这个方法,以获取真实的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值