C# Winform picturebox显示用代码画出来的字符串图片
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Winform picturebox显示用代码画出来的字符串图片相关的知识,希望对你有一定的参考价值。
镇场诗:
———大梦谁觉,水月中建博客。百千磨难,才知世事无常。
———今持佛语,技术无量愿学。愿尽所学,铸一良心博客。
——————————————————————————————————————————
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
——————————————————————————————————————————
博文的精髓,在技术部分,更在镇场一诗。
C#是优秀的语言,值得努力学习。
如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取铸成一个良心博客。
注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。
以上是关于C# Winform picturebox显示用代码画出来的字符串图片的主要内容,如果未能解决你的问题,请参考以下文章
C# winform开发中用picturebox 只能显示大图片一部分,如何生成适合picturebox的图片并且保证不失真?有知