TextRenderer.DrawText

本文介绍了一个使用C#在图片上绘制文本的例子。通过创建Bitmap对象并利用Graphics类进行绘图,展示了如何设置字体、颜色及绘制边界。此外,还演示了如何测量文本大小并将其显示在PictureBox中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

using MESHelper.Models; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using MESHelper.IBusiness; using Tools.DB; using AMES.NormalTool; using Models; using SqlSugar; using DevExpress.Utils.About; using DevComponents.DotNetBar.Controls; namespace AMES.HandInput { public partial class GetOrderForm : Form { private GetOrderForm() { InitializeComponent(); } private static GetOrderForm _instance; //首页 public static int pageStart = 1; //当前页数 public int pageIndex = ((pageStart - 1) * pageSize); //每页显示的记录数 private static int pageSize = 10; //总记录数 private static int recordCount; //总页数 private static int pageCount = 0; public static GetOrderForm GetInstance() { if (_instance == null) { _instance = new GetOrderForm(); } return _instance; } private void GetOrder_button_Click(object sender, EventArgs e) { var allData = GetOrder.GetOrderMethod(); foreach (var item in allData.Data) { DbContext.P_WorkOrder_DB.Insert(new Models.P_WorkOrder { FactoryName = item.FactoryName, MfgLineName = item.MfgLineName, WorkOrderName = item.WorkOrderName, WorkOrderNo = item.ProductName, ProductionNo = item.ProductItemNo, ProductFamily = item.ProductFamily, PlanNumber = item.Qty, OrderName = item.OrderName, PlannedcompletionDate = item.PlannedcompletionDate, PlannedstartDate = item.PlannedstartDate, DoneNumber = "1", WorkOrderRuleID = 0, WorkOrderType = "N", WorkOrderStatus = 1, }); } DbContext.Db.Ado.ExecuteCommand("DELETE FROM P_WorkOrder WHERE ID NOT IN (SELECT MIN(ID) FROM P_WorkOrder GROUP BY WorkOrderName)"); MessageBox.Show("获取工单成功"); } private void Select_button_Click(object sender, EventArgs e) { DateTime yesterday = DateTime.Today.AddDays(-1); DateTime tomorrow = DateTime.Today.AddDays(1); recordCount = DbContext.Db.Ado.GetInt("SELECT COUNT(*) FROM P_WorkOrder"); //recordCount = 0; pageCount = (int)Math.Ceiling((double)recordCount / pageSize); dataGridView1.DataSource = DbContext.Db.Queryable<P_WorkOrder>().Select(x => new { x.FactoryName, x.MfgLineName, x.WorkOrderName, x.WorkOrderNo, x.ProductionNo, x.ProductFamily, x.PlanNumber, x.OrderName, x.PlannedcompletionDate, x.PlannedstartDate, x.DoneNumber, x.WorkOrderRuleID, x.WorkOrderType, x.WorkOrderStatus, }).OrderBy(x => x.PlannedstartDate, OrderByType.Desc).ToPageList(pageStart, pageSize, ref recordCount).ToList(); //设置表头 dataGridView1.Columns["FactoryName"].HeaderText = "工厂名称"; dataGridView1.Columns["MfgLineName"].HeaderText = "产线名称"; dataGridView1.Columns["WorkOrderName"].HeaderText = "工单名称"; dataGridView1.Columns["WorkOrderNo"].HeaderText = "产品型号"; dataGridView1.Columns["ProductionNo"].HeaderText = "产品料号"; dataGridView1.Columns["ProductFamily"].HeaderText = "产品系列"; dataGridView1.Columns["PlanNumber"].HeaderText = "计划产量"; dataGridView1.Columns["OrderName"].HeaderText = "订单"; dataGridView1.Columns["PlannedcompletionDate"].HeaderText = "计划结束时间"; dataGridView1.Columns["PlannedstartDate"].HeaderText = "计划开始时间"; dataGridView1.Columns["DoneNumber"].HeaderText = "实际产量"; dataGridView1.Columns["WorkOrderRuleID"].HeaderText = "工单规则编号"; dataGridView1.Columns["WorkOrderType"].HeaderText = "工单类型"; dataGridView1.Columns["WorkOrderStatus"].HeaderText = "工单状态"; //禁止自动选中第一行 dataGridView1.Rows[0].Selected = false; All_textBox.Text = recordCount.ToString(); PageAll_textBox.Text = pageCount.ToString(); Page_textBox.Text = (pageIndex + 1).ToString(); } private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { FactoryName_textBox.Text = dataGridView1.CurrentRow.Cells["FactoryName"].Value.ToString(); MfgLineName_textBox.Text = dataGridView1.CurrentRow.Cells["MfgLineName"].Value.ToString(); WorkOrderName_textBox.Text = dataGridView1.CurrentRow.Cells["WorkOrderName"].Value.ToString(); WorkOrderNo_textBox.Text = dataGridView1.CurrentRow.Cells["WorkOrderNo"].Value.ToString(); ProductionNo_textBox.Text = dataGridView1.CurrentRow.Cells["ProductionNo"].Value.ToString(); ProductFamily_textBox.Text = dataGridView1.CurrentRow.Cells["ProductFamily"].Value.ToString(); PlanNumber_textBox.Text = dataGridView1.CurrentRow.Cells["PlanNumber"].Value.ToString(); OrderName_textBox.Text = dataGridView1.CurrentRow.Cells["OrderName"].Value.ToString(); PlannedcompletionDate_textBox.Text = dataGridView1.CurrentRow.Cells["PlannedcompletionDate"].Value.ToString(); PlannedstartDate_textBox.Text = dataGridView1.CurrentRow.Cells["PlannedstartDate"].Value.ToString(); DoneNumber_textBox.Text = dataGridView1.CurrentRow.Cells["DoneNumber"].Value.ToString(); WorkOrderRuleID_textBox.Text = dataGridView1.CurrentRow.Cells["WorkOrderRuleID"].Value.ToString(); WorkOrderType_textBox.Text = dataGridView1.CurrentRow.Cells["WorkOrderType"].Value.ToString(); WorkOrderStatus_textBox.Text = dataGridView1.CurrentRow.Cells["WorkOrderStatus"].Value.ToString(); UseOrder_textBox.Text = dataGridView1.CurrentRow.Cells["WorkOrderName"].Value.ToString(); } private void SetOrder_button_Click(object sender, EventArgs e) { DbContext.Db.Ado.ExecuteCommand("UPDATE P_WorkOrder SET WorkOrderType = 'P' WHERE WorkOrderName = '" + WorkOrderName_textBox.Text.Trim() + "'"); Select_button_Click(sender, e); SetOrder_button.Enabled = false; UseOrder_textBox.Text = WorkOrderName_textBox.Text; MessageBox.Show("设置成功"); } private void Pre_button_Click(object sender, EventArgs e) { if (pageStart == 1) { Page_textBox.Text = pageStart.ToString(); } else if (pageStart > 1 || pageStart <= pageCount) { pageStart--; pageIndex = (pageStart - 1); Page_textBox.Text = pageStart.ToString(); Select_button_Click(sender, e); } } private void Next_button_Click(object sender, EventArgs e) { if (pageStart == pageCount) { Page_textBox.Text = pageStart.ToString(); } else if (pageStart >= 1 || pageStart <= pageCount) { pageStart++; pageIndex = pageStart - 1; Page_textBox.Text = pageStart.ToString(); Select_button_Click(sender, e); } } private void dgv_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dataGridView1.RowHeadersWidth - 4, e.RowBounds.Height); TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dataGridView1.RowHeadersDefaultCellStyle.Font, rectangle, dataGridView1.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right); } private void GetOrderForm_FormClosing(object sender, FormClosingEventArgs e) { _instance = null; } private void UpdateOrder_button_Click(object sender, EventArgs e) { DbContext.Db.Ado.ExecuteCommand("UPDATE P_WorkOrder SET WorkOrderType = 'N' WHERE WorkOrderType = 'P'"); DbContext.Db.Ado.ExecuteCommand("UPDATE P_WorkOrder SET WorkOrderType = 'P' WHERE WorkOrderName = '" + WorkOrderName_textBox.Text.Trim() + "'"); Select_button_Click(sender, e); UseOrder_textBox.Text = WorkOrderName_textBox.Text; MessageBox.Show("切换成功"); } private void GetOrderForm_Load(object sender, EventArgs e) { var info = DbContext.P_WorkOrder_DB.GetList(x => x.WorkOrderType == "P").ToList(); foreach (var item in info) { FactoryName_textBox.Text = item.FactoryName; MfgLineName_textBox.Text = item.MfgLineName; WorkOrderName_textBox.Text = item.WorkOrderName; WorkOrderNo_textBox.Text = item.WorkOrderNo; ProductionNo_textBox.Text = item.ProductionNo; ProductFamily_textBox.Text = item.ProductFamily; PlanNumber_textBox.Text = item.PlanNumber; OrderName_textBox.Text = item.OrderName; PlannedcompletionDate_textBox.Text = item.PlannedcompletionDate; PlannedstartDate_textBox.Text = item.PlannedstartDate; DoneNumber_textBox.Text = item.DoneNumber; WorkOrderRuleID_textBox.Text = item.WorkOrderRuleID.ToString(); WorkOrderType_textBox.Text = item.WorkOrderType; WorkOrderStatus_textBox.Text = item.WorkOrderStatus.ToString(); UseOrder_textBox.Text = item.WorkOrderName; } } } }
最新发布
08-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值