如何在WinForms TextBox中实现点击按钮时随机改变字体大小
实现点击按钮随机改变字符大小的方法
关键修改点:
- 复用全局的
Random实例,避免短时间内重复创建实例导致随机数重复 - 生成指定范围内的随机字体大小,为
TextBox设置新字体(保留原字体的字体系列与样式,仅修改大小)
修改后的完整代码:
public partial class Form1 : Form { Color[] co = new Color[4] { Color.Red, Color.Green, Color.Blue, Color.Orange }; Random rnd = new Random(); char[] letters = "АБВГДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ".ToArray(); string output; public Form1() { InitializeComponent(); } void generate(int NoOfLetter) { output = null; for (int i = 0; i < NoOfLetter; i++) { output += letters[rnd.Next(0, letters.Length)]; } textBox1.Text = output; } private void button1_Click(object sender, EventArgs e) { // 随机设置文字颜色 int colorIndex = rnd.Next(0, co.Length); textBox1.ForeColor = co[colorIndex]; // 随机设置字体大小(范围12到72,可自行调整数值) int randomFontSize = rnd.Next(12, 73); textBox1.Font = new Font(textBox1.Font.FontFamily, randomFontSize, textBox1.Font.Style); generate(1); } }
代码说明:
- 移除了冗余的
int a变量和重复创建的Random rndcol实例,统一用全局rnd生成所有随机数,避免随机数重复问题 rnd.Next(12,73)用于生成12到72之间的整数,因Next方法的上限为开区间,所以写73才能包含72- 创建新
Font对象时复用原字体的字体系列与样式,仅修改大小,也可根据需求扩展为随机字体系列
内容的提问来源于stack exchange,提问作者Ounw
相关产品推荐
相关产品推荐

