作业答案a

这篇博客展示了如何使用C#进行图形绘制,通过创建矩形和填充扇形来形成彩色的进度指示器。代码中详细解释了如何更新扇形角度以展示不同阶段的进度,并在窗体的Paint事件中实现动态效果。此外,还涉及到了线程操作,用于模拟后台任务并在完成时更新界面。
摘要由CSDN通过智能技术生成

new byte[fs.Length];
new SqlCommandBuilder(ad);
row[“pic”] = b;
table.Rows.Add(row);
ad.Update(table);
private void Forml_Paint(object sender, PaintEventArgs e)

    {

        int x = 100;

        //初始化坐标和长度宽度

        int y = 100;

        int width = 100; int height = 100;

        Rectangle rct = new Rectangle(x, y, width, height); //创建矩形

        Graphics g = this.CreateGraphics(); //创建画布

        float startAngle = 0;

        float sweepAngle = (float)0.25 * 360;

        g.FillPie(new SolidBrush(Color.Blue), rct, startAngle, sweepAngle);//在已经创建的矩形中绘制扇形,以startAngle开始到sweepAngle结束startAngle += sweepAngle;//更新起始位置

        sweepAngle = (float)0.15 * 360;//更新终点位置

        g.FillPie(new SolidBrush(Color.Red), rct, startAngle, sweepAngle);//在已经创建的矩形中绘制扇形,以startAngle开始到sweepAngle结束startAngle += sweepAngle;//同上

        sweepAngle = (float)0.1 * 360;

        g.FillPie(new SolidBrush(Color.Yellow), rct, startAngle, sweepAngle);

        startAngle += sweepAngle;//同上

        sweepAngle = (float)0.3 * 360;

        g.FillPie(new SolidBrush(Color.Black), rct, startAngle, sweepAngle);

        startAngle += sweepAngle;//同上

        sweepAngle = (float)0.2 * 360;//至此已画完整个圆形

        g.FillPie(new SolidBrush(Color.Green), rct, startAngle, sweepAngle);

        g.DrawRectangle(new Pen(Color.Black), new Rectangle(x, y, width, height));//画出该矩形,以黑色作为轮廓



    }
    using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.progressBar1.Maximum = 100
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
this.progressBar1.Visible=true ;
Thread th = new Thread(new ThreadStart(work));
th.IsBackground = true;
th.Start();
}
void work()
{
for (int i = 0; i < this.progressBar1.Maximum; i++)
{
this.Invoke(new EventHandler(delegate
{
this.progressBar1.Value = i;
}))
Thread.Sleep(100);
}
this.Invoke(new EventHandler(delegate
{
this.progressBar1.Visible = false;
this.label1.Text = “ok”;
}));
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值