日期:2014-05-17  浏览次数:20865 次

C#,string,字体
在winformk中,
如何把string str="基本生活";
 转化为 str="基本生活"(粗体);

------解决方案--------------------
你设置字体不就行了,动态的设置,需要 new System.Drawing.Font(this.Font, FontStyle.Bold)
------解决方案--------------------
comboBox1.DrawMode = DrawMode.OwnerDrawVariable;
然后在comboBox1_DrawItem里自己画
------解决方案--------------------
internal System.Windows.Forms.ComboBox ComboBox1;
private string[] animals;

// This method initializes the owner-drawn combo box.
// The drop-down width is set much wider than the size of the combo box
// to accomodate the large items in the list.  The drop-down style is set to 
// ComboBox.DropDown, which requires the user to click on the arrow to 
// see the list.
private void InitializeComboBox()
{
this.ComboBox1 = new ComboBox();
this.ComboBox1.DrawMode = 
System.Windows.Forms.DrawMode.OwnerDrawVariable;
this.ComboBox1.Location = new System.Drawing.Point(10, 20);
this.ComboBox1.Name = "ComboBox1";
this.ComboBox1.Size = new System.Drawing.Size(100, 120);
this.ComboBox1.DropDownWidth = 250;
this.ComboBox1.TabIndex = 0;
this.ComboBox1.DropDownStyle = ComboBoxStyle.DropDown;
animals = new string[]{"Elephant", "c r o c o d i l e", "lion"};
ComboBox1.DataSource = animals;
this.Controls.Add(this.ComboBox1);

// Hook up the MeasureItem and DrawItem events
this.ComboBox1.DrawItem += 
new DrawItemEventHandler(ComboBox1_DrawItem);
this.ComboBox1.MeasureItem += 
new MeasureItemEventHandler(ComboBox1_MeasureItem);
}

// If you set the Draw property to DrawMode.OwnerDrawVariable, 
// you must handle the MeasureItem event. This event handler 
// will set the height and width of each item before it is drawn. 
private void ComboBox1_MeasureItem(object sender, 
System.Windows.Forms.MeasureItemEventArgs e)
{

switch(e.Index)
{
case 0:
e.ItemHeight = 45;
break;
case 1:
e.ItemHeight = 20;
break;
case 2:
e.ItemHeight = 35;
break;
}
e.ItemWidth = 260;

}

// You must handle the DrawItem event for owner-drawn combo boxes.  
// This event handler changes the color, size and font of an 
// item based on its position in the array.
private void ComboBox1_DrawItem(object sender, 
System.Windows.Forms.DrawItemEventArgs e)
{

float size = 0;
System.Drawing.Font myFont;
FontFamily family = null;

System.Drawing.Color animalColor = new