Visual Studio只單獨改變文字大小或字體。
知識+問題 網址:
http://tw.knowledge.yahoo.com/question/question?qid=1510060304300
關於網友 常嚐試 的提問:
VS寫程式碼時
改變文字屬性
txt.font=new font(''細明體'',12,fontstyle.bold)
此一形式限制
就沒辦法只改變單其中一種
請問該怎麼解決呢
需求是
例如有6個按鈕
分別是字體12、字體14、字體16、字型斜體、字型粗體、字體標準
我要怎麼讓textbox內的文字(原本狀態是字體12、字型斜體)
在我選擇字體16時,字型不會改變,而保留原來的斜體
在我進一步改變字體為粗體的時候,字型也不會變動還是一樣16?
因為
new font(''細明體'',12,fontstyle.bold)
這個形式讓我很困擾
一個按鈕只有一種樣子
我不知道如何去寫才會互相獨立不影響
------------------------------ 我的回答分格線 ------------------------------
程式碼:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private FontStyle fs;
private FontFamily fm;
private Font f;
private float size;
public Form1()
{
InitializeComponent();
}
//12px
private void button1_Click(object sender, EventArgs e)
{
fs = textBox1.Font.Style;
fm = new FontFamily(textBox1.Font.Name);
f = new Font(fm, 12, fs);
textBox1.Font = f;
}
//14px
private void button2_Click(object sender, EventArgs e)
{
fs = textBox1.Font.Style;
fm = new FontFamily(textBox1.Font.Name);
f = new Font(fm, 14, fs);
textBox1.Font = f;
}
//16px
private void button3_Click(object sender, EventArgs e)
{
fs = textBox1.Font.Style;
fm = new FontFamily(textBox1.Font.Name);
f = new Font(fm, 16, fs);
textBox1.Font = f;
}
//italic
private void button4_Click(object sender, EventArgs e)
{
size = textBox1.Font.Size;
fm = new FontFamily(textBox1.Font.Name);
f = new Font(fm, size, FontStyle.Italic);
textBox1.Font = f;
}
//bold
private void button5_Click(object sender, EventArgs e)
{
size = textBox1.Font.Size;
fm = new FontFamily(textBox1.Font.Name);
f = new Font(fm, size, FontStyle.Bold);
textBox1.Font = f;
}
//regular
private void button6_Click(object sender, EventArgs e)
{
size = textBox1.Font.Size;
fm = new FontFamily(textBox1.Font.Name);
f = new Font(fm, size, FontStyle.Regular);
textBox1.Font = f;
}
}
}
字體大小及字體形式各取一例說明:
在這個例子中,我們要實作這個Font,需要要填入三個引數
Font f = new Font(字型, 大小, 樣式);
參見 MSDN Font 建構函式 (FontFamily, Single, FontStyle)
http://msdn.microsoft.com/zh-tw/library/ms141985(v=VS.100).aspx
而我們希望達到的功能為:
當欲變更字型大小時,字型及樣式不變動;
當欲變更字型樣式時,字型及大小不變動。
所以當欲變更 大小 時,先把原本的 字型 及 樣式 儲存起來,
再將新的 大小 及原本的 字型 與 樣式 拿來初始化新的Font。
//12px
private void button1_Click(object sender, EventArgs e)
{
fs = textBox1.Font.Style; //將原本的樣式存入 fs
fm = new FontFamily(textBox1.Font.Name); //將原本的字型存入 fm
f = new Font(fm, 12, fs); //以fs, fm 以及新的大小'12',初始化新的Font
textBox1.Font = f; //將textBox1.Font以剛剛新的Font取代
}
欲變更 樣式 時,先把原本的 字型 及 大小 儲存起來,
再將新的 樣式 及原本的 字型 與 大小 拿來初始化新的Font。
//italic
private void button4_Click(object sender, EventArgs e)
{
size = textBox1.Font.Size; //將原本的大小存入size
fm = new FontFamily(textBox1.Font.Name); //將原本的字型存入 fm
f = new Font(fm, size, FontStyle.Italic); //以size, fm 以及新的樣式FontStyle.Italic,初始化新的Font
textBox1.Font = f; //將textBox1.Font以剛剛新的Font取代
}