设置一个Label控件上文字的字体样式和字体大小随机的代码.

原创 2004年07月11日 13:33:00

在CSDN上有人问如何设置一个Label控件上文字的字体样式和字体大小随机的代码,觉得比较有意思,
    http://community.csdn.net/Expert/topic/3162/3162272.xml?temp=.8220941
随便写了一个,难点在于MSDN上有一段话:
由于 Font 对象是不可变的(意思是说,无法调整它的任何属性),只能给 Font 属性分配一个新 Font 对象。但是,可以使新的字体基于现有字体。其次要使用定时器和随机数。
Code

--------------------------------------------------------------------------------

using System;
using System.IO;
using System.Drawing;
using System.Timers;
using System.Windows.Forms;
namespace SKY.RandLabel
{
 class App
 {
  public static void Main(String[] args)
  {
   MainForm form = new MainForm();
   Application.Run(form);
  }
 }
 class MainForm : Form
 {
  public Random rnd = null;
     private Label lb1 = null;
     private Label lb2 = null;
  public MainForm()
  {
   //for test
   string s1 ="";
   string s2 ="";
   string s3 ="由于 Font 对象是不可变的(意思是说,无法调整它的任何属性),只能给 Font 属性分配一个新 Font 对象。但是,可以使新的字体基于现有字体。";
            rnd = new Random();
   foreach(string s in Enum.GetNames(typeof(FontStyle)))
   s1+="  "+s;
   foreach(int i in Enum.GetValues(typeof(FontStyle)))
   s2+="  "+System.Convert.ToString(i);
      lb1 = new Label();
   lb2 = new Label();
   lb1.BorderStyle = BorderStyle.FixedSingle;
   lb1.AutoSize = false;
   lb2.Dock = DockStyle.Bottom;
   lb1.Dock = DockStyle.Fill;
   lb1.Font = new Font(lb1.Font, lb1.Font.Style | FontStyle.Bold);
   lb2.AutoSize = true;
   
   lb1.Text  = s3;
   lb2.Text = s1;
   //安装timer
   System.Timers.Timer timer = new System.Timers.Timer(2000);
      timer.Elapsed+=new ElapsedEventHandler(OnTimedEvent);
      timer.AutoReset = true;
      timer.Enabled = true;

   Controls.AddRange(new Control[] {lb1,lb2});
  }
  public void SetLabelP()
  {
            FontStyle[] styles = (FontStyle[]) Enum.GetValues(typeof(FontStyle));
            int index = rnd.Next(0,styles.Length);
            //清除原来得Font属性
            lb1.Font = new Font(lb1.Font, styles[index]);
  }
  public void OnTimedEvent(object source, ElapsedEventArgs e)
  {
   SetLabelP();
  }
 }
}

-----------------------------------------------------------------------

屏幕快照:

(NGUI)label设置局部字体大小

最近项目里有个需求,在设计剧情对话的时候需要逐个字的播放一个label里的剧情对话,当然这不是关键,关键是策划需求剧情内的某些字段比如名字等需要区别于剧情对话的字体的大小。当然有人会说直接拼label...
  • helric7856
  • helric7856
  • 2016年06月02日 17:42
  • 571

NGUI 中 Label 字体大小变化的问题

有时,当我们使用 UI Label , 里面的字体,有时会因为字数变多,而自动变小, 有时,我们会希望,字数多了,但是,字体的大小也不会变化, 例如 游戏中的分数,字体大...
  • JAROD_JIANGHE
  • JAROD_JIANGHE
  • 2017年07月14日 10:54
  • 496

仿微信设置字体大小控件

先上图 可以点击交叉点,和滑动来选择,下面是代码,不是很难,就是练习一下。 package com.zjsc.zjscapp.widget; import android.content.Con...
  • u012214750
  • u012214750
  • 2017年04月11日 12:58
  • 910

[原创]FineUI秘密花园(六) — 表单控件

FineUI中有哪些常用的表单控件,它们有什么共同点和不同点,这一篇文章我们会详细解说。   表单控件的公共属性 所有的表单都具有如下属性: ShowLabel:是否显示标签(默认值:true)。 ...
  • u010918003
  • u010918003
  • 2013年06月24日 11:33
  • 1505

自定义的Label,可以设置同一Label字体的大小不同,颜色不一

在iOS开发中,我们搭建UI的时候常常会看到这样的设计,一小段文字,但字体大小、颜色却是不同的,本来一个UILabel就搞定的问题,却要多写好几行代码,我遇到很多这种设计,为了解决这个麻烦的东西就自己...
  • xiaowu_cc
  • xiaowu_cc
  • 2016年11月24日 10:59
  • 996

MFC如何给控件设置字体

LOGFONT: 一个结构体,用来逻辑上表达一个字体   ,在Windows内部,字体是以一个名为LOGFONT的结构来表示 typedef struct tagLOGFONT { LONG l...
  • Arcsinsin
  • Arcsinsin
  • 2014年05月28日 19:23
  • 6868

IntelliJ IDEA 设置 编辑器字体大小背景色及快捷键

最近Idea比较流行,Eclipse因为maven的问题,运行起来非常慢,各种提示也不够智能。 现在开发基本都转到了idea,用着感觉确实不错,很方便。 但是设置和快捷键都不同了,需要一些...
  • xualaleilei
  • xualaleilei
  • 2015年12月08日 22:39
  • 1794

easyui改变tree的字体颜色,大小。

自己想做点东西,用easyui的时候发现tree的样子好难看,但是在网上搜索不到相关修改字体颜色的方法。自己研究了一下,希望能帮到那些和我一样困惑的人; 改变tree 字体颜色,大小: 两种解决方案:...
  • Brain_Storming
  • Brain_Storming
  • 2016年07月01日 18:46
  • 8048

HTML字体大小的设置

网页中常用的字体尺寸定义有7个号,1号字最小,7号字最大,定义字号的    指令代码是尖括号内:   为了便于正常显示,暂时用[ ]代替。    各种字号尺寸如下:    [f...
  • u012230055
  • u012230055
  • 2014年10月22日 11:57
  • 7600

Builder模式设置AlertDialog字体大小、颜色等属性

AlertDialog设置字体颜色、大小。输入框、选择框
  • y12345654321
  • y12345654321
  • 2017年05月23日 13:55
  • 4432
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设置一个Label控件上文字的字体样式和字体大小随机的代码.
举报原因:
原因补充:

(最多只允许输入30个字)