一个winform的华丽的圆角group控件

本文介绍了一个Winform中实现的完全自定义的圆角Group控件,该控件具有自动伸缩标题栏和图片支持的功能。通过提供的主要代码,读者可以学习到Winform自定义控件的开发技巧。
摘要由CSDN通过智能技术生成

学习winform的自定义控件的开发时看的的一个控件的实现,完全的用户自定义实现!是大家学习的好例子

先看截图

标题栏是根据标题的字体来自动伸缩的。当然,标题也支持图片!

主要代码:

 private void PaintBack(System.Drawing.Graphics g)
        {
            g.SmoothingMode = SmoothingMode.AntiAlias;


            int ArcWidth = this.C_RoundCorners * 2;
            int ArcHeight = this.C_RoundCorners * 2;
            int ArcX1 = 0;
            int ArcX2 = (this.ShadowControl) ? (this.Width - (ArcWidth + 1)) - this.ShadowThickness : this.Width - (ArcWidth + 1);
            int ArcY1=10;
            int ArcY2 = (this.ShadowControl) ? (this.Height - (
好的,那么您可以使用Winform曲线图控件来实现这个需求。以下是一个基本的实现步骤: 1. 首先,在Winform中添加一个曲线图控件,例如System.Windows.Forms.DataVisualization.Charting.Chart控件。 2. 然后,在代码中编写查询数据库的代码,并将结果存储到一个DataTable对象中。您可以使用SQLiteDataAdapter和SQLiteCommand对象来执行SQL查询。 3. 接着,将DataTable中的数据添加到曲线图控件中。您可以使用Chart.Series.Add方法来添加一个系列,然后使用Series.Points.AddXY方法来添加数据点。 以下是一个参考的代码示例: ```c# using System.Data.SQLite; using System.Windows.Forms.DataVisualization.Charting; // 定义一个方法来查询数据库并绘制曲线图 private void DrawChart() { // 创建一个SQLiteConnection对象,并打开连接 using (var connection = new SQLiteConnection("Data Source=数据库文件路径")) { connection.Open(); // 创建一个SQL查询语句,并用SQLiteCommand对象执行查询 var sql = "SELECT 季度, COUNT(CASE WHEN 完成度 = 'Pass' THEN 1 ELSE NULL END) as Pass_Count, COUNT(CASE WHEN 完成度 = 'Fail' THEN 1 ELSE NULL END) as Fail_Count FROM 表名 GROUP BY 季度 ORDER BY CASE 季度 WHEN 'Q1' THEN 1 WHEN 'Q2' THEN 2 WHEN 'Q3' THEN 3 WHEN 'Q4' THEN 4 END"; var command = new SQLiteCommand(sql, connection); var adapter = new SQLiteDataAdapter(command); var dataset = new DataSet(); adapter.Fill(dataset); // 清空曲线图控件中的数据 chart1.Series.Clear(); // 添加一个系列,并设置系列名称和图表类型 var series1 = chart1.Series.Add("Pass_Count"); series1.ChartType = SeriesChartType.Line; // 添加数据点到系列中 foreach (DataRow row in dataset.Tables[0].Rows) { var x = row["季度"].ToString(); var y = Convert.ToInt32(row["Pass_Count"]); series1.Points.AddXY(x, y); } // 添加另一个系列,并设置系列名称和图表类型 var series2 = chart1.Series.Add("Fail_Count"); series2.ChartType = SeriesChartType.Line; // 添加数据点到系列中 foreach (DataRow row in dataset.Tables[0].Rows) { var x = row["季度"].ToString(); var y = Convert.ToInt32(row["Fail_Count"]); series2.Points.AddXY(x, y); } } } ``` 这段代码会查询数据库中的数据,并将Pass_Count和Fail_Count的值添加到曲线图控件中。您可以根据需要修改系列名称、图表类型和数据点的颜色等属性来美化曲线图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值