您的位置:首页 > 编程语言 > C#

C#Winform基础 picturebox显示用代码画出来的字符串图片

2016-10-29 17:32 417 查看
镇场诗:
    清心感悟智慧语,不着世间名与利。学水处下纳百川,舍尽贡高我慢意。
    学有小成返哺根,愿铸一良心博客。诚心于此写经验,愿见文者得启发。
——————————————————————————————————————————

1 UI



2 code

1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace WindowsFormsApplication6
12 {
13
14     public partial class Form1 : Form
15     {
16
17         public Form1()
18         {
19             InitializeComponent();
20         }
21         /// <summary>
22         /// 用来画出图片,然后在picturebox中显示图片的
23         /// </summary>
24         /// <param name="pBox">哪个picturebox显示画出来的图片呀</param>
25         /// <param name="content">将哪个字符串画进图片呢</param>
26         private void pbShow(PictureBox pBox,string content)
27         {
28             //创建图片对象,一会要给picturebox的
29             //这个图片,宽32,高31,刚好是picturebox的宽与高
30             Bitmap bm = new Bitmap(32, 31);
31             //从指定的Image对象创建新的Grapics画板
32             Graphics g = Graphics.FromImage(bm);
33             //字体是宋体
34             string font = "宋体";
35             //字体的颜色是白色
36             Color fontColor = Color.White;
37             //创建一个点,这个点就是用来指定被画对象的初始位置
38             Point p = new Point(10, 5);
39             //画字符串 画的内容是content   宋体,12号,粗体               字体的颜色:白色     字体的位置
40             g.DrawString(content, new Font(font, 12, FontStyle.Bold), new SolidBrush(fontColor), p);
41
42             //把画出来的图片交给picturebox吧
43             pBox.Image = bm;
44         }
45
46         //定义一个枚举后,配合bool数组,程序的可读性就会大大提高
47         enum flag:Int16
48         {
49             OF,
50             DF,
51             IF,
52             SF,
53             ZF,
54             AF,
55             PF,
56             CF
57         }
58
59         //flag寄存器的每一位的状态,true对应1,false对应0
60         bool[] eachFlag = new bool[] { true, true, true, true, true, true, true, true };
61
62         private void Form1_Load(object sender, EventArgs e)
63         {
64
65         }
66
67         #region 16个按钮被点击后的代码
68         /// <summary>
69         /// 按钮被单击,pbOF这个picturebox显示OV字样,然后OF标志位对应在bool数组的内容变为ture
70         /// </summary>
71         /// <param name="sender"></param>
72         /// <param name="e"></param>
73         private void btnOV_Click(object sender, EventArgs e)
74         {
75             pbShow(pbOF,"OV");
76             eachFlag[(int)flag.OF] = true;
77         }
78
79         private void btnNV_Click(object sender, EventArgs e)
80         {
81             pbShow(pbOF, "NV");
82             eachFlag[(int)flag.OF] = false;
83         }
84
85         private void btnDN_Click(object sender, EventArgs e)
86         {
87             pbShow(pbDF,"DN");
88             eachFlag[(int)flag.DF] = true;
89         }
90
91         private void btnUP_Click(object sender, EventArgs e)
92         {
93             pbShow(pbDF, "UP");
94             eachFlag[(int)flag.DF] = false;
95         }
96
97         private void btnEI_Click(object sender, EventArgs e)
98         {
99             pbShow(pbIF, "EI");
100             eachFlag[(int)flag.IF] = true;
101         }
102
103         private void btnDI_Click(object sender, EventArgs e)
104         {
105             pbShow(pbIF, "DI");
106             eachFlag[(int)flag.IF] = false;
107         }
108
109         private void btnNG_Click(object sender, EventArgs e)
110         {
111             pbShow(pbSF, "NG");
112             eachFlag[(int)flag.SF] = true;
113         }
114
115         private void btnPL_Click(object sender, EventArgs e)
116         {
117             pbShow(pbSF, "PL");
118             eachFlag[(int)flag.SF] = false;
119         }
120
121         private void btnZR_Click(object sender, EventArgs e)
122         {
123             pbShow(pbZF, "ZR");
124             eachFlag[(int)flag.ZF] = true;
125         }
126
127         private void btnNZ_Click(object sender, EventArgs e)
128         {
129             pbShow(pbZF, "NZ");
130             eachFlag[(int)flag.ZF] = false;
131         }
132
133         private void btnAC_Click(object sender, EventArgs e)
134         {
135             pbShow(pbAF, "AC");
136             eachFlag[(int)flag.AF] = true;
137         }
138
139         private void btnNA_Click(object sender, EventArgs e)
140         {
141             pbShow(pbAF, "NA");
142             eachFlag[(int)flag.AF] = false;
143         }
144
145         private void btnPE_Click(object sender, EventArgs e)
146         {
147             pbShow(pbPF, "PE");
148             eachFlag[(int)flag.PF] = true;
149         }
150
151         private void btnPO_Click(object sender, EventArgs e)
152         {
153             pbShow(pbPF, "PO");
154             eachFlag[(int)flag.PF] = false;
155         }
156
157         private void btnCY_Click(object sender, EventArgs e)
158         {
159             pbShow(pbCF, "CY");
160             eachFlag[(int)flag.CF] = true;
161         }
162
163         private void btnNC_Click(object sender, EventArgs e)
164         {
165             pbShow(pbCF, "NC");
166             eachFlag[(int)flag.CF] = false;
167         }
168         #endregion
169
170         /// <summary>
171         /// 显式最终结果,字母对应01的转换
172         /// </summary>
173         /// <param name="sender"></param>
174         /// <param name="e"></param>
175         private void button1_Click(object sender, EventArgs e)
176         {
177             //用一个数组的话,就很好遍历了。
178             PictureBox[] pb = new PictureBox[] { pbOF, pbDF, pbIF, pbSF, pbZF, pbAF, pbPF, pbCF };
179             //因为要对字符串反复的增添,修改,覆盖。所以我选择了stringbuilder
180             StringBuilder sb = new StringBuilder();
181             foreach (var item in eachFlag)
182             {
183                 if(item)
184                 {
185                     sb.Append("1");
186                 }
187                 else
188                 {
189                     sb.Append("0");
190                 }
191             }
192             textBox1.Text = sb.ToString();
193         }
194
195     }
196 }


3 show



——————————————————————————————————————————
博文的精髓,在技术部分,更在镇场一诗。版本:VS2015 SqlServer2014 系统:Windows 7
C#是优秀的语言,值得努力学习。我是跟随 传智播客\黑马 .Net视频教程学习的。
如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取铸成一个良心博客。
注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: