2012-07-08 52 views
0

我一直在這個項目上工作了幾天,它是一個C#Windows Visual Studio 2010表單,我發佈了不同的問題,涉及到同一個項目;因爲我被告知發佈不同的問題,而不是讓他們都在同一篇文章中。所以這是項目:創建一個帶有兩個ListBox的表單 - 一個包含至少四個字體名稱,另一個包含至少四個字體大小。如果用戶未能做出選擇,讓每個列表中的第一項作爲默認選擇。每個ListBox只允許一個選擇。在用戶點擊一個按鈕後,以選定的字體和大小顯示「你好」。 這一次我遇到問題,要根據用戶選擇的字體類型和大小顯示文本框中的消息。這裏就是我在編碼:顯示用戶從兩個列表框中選擇的字體類型和大小的消息

public Form1() 
    { 
     InitializeComponent(); 

     //populate listbox1 
     listBox1.Items.Add("Arial"); 
     listBox1.Items.Add("Calibri"); 
     listBox1.Items.Add("Times New Roman"); 
     listBox1.Items.Add("Verdana"); 

     //populate listbox2 
     listBox2.Items.Add("8"); 
     listBox2.Items.Add("10"); 
     listBox2.Items.Add("12"); 
     listBox2.Items.Add("14"); 

     this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged); 
     listBox1.SelectedIndex = 0; // <--- set default selection for listBox1 

     this.listBox2.SelectedIndexChanged += new System.EventHandler(this.listBox2_SelectedIndexChanged); 
     listBox2.SelectedIndex = 0; // <--- set default selection for listBox2 

    } 

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     textBox1.Text = listBox1.SelectedItem.ToString(); 
    } 

    private void listBox2_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     textBox1.Text = listBox2.SelectedItem.ToString(); 
    } 

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     textBox1.Text = "Hello!"; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 

    } 
} 

}

現在我試圖引起從一個按鈕按下呼叫將在用戶的選擇字體的顯示消息「你好」和字體大小。任何建議將不勝感激。

+0

你試過設置的字體是什麼?到目前爲止,您似乎只是在代碼中省略了該部分;你有沒有研究過'TextBox'相關的成員用'Font'命名的文檔? – 2012-07-08 20:36:37

回答

3

刪除此方法:

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    textBox1.Text = "Hello!"; 
} 
在按鈕的button_click事件

,補充一點:

private void button1_Click(object sender, EventArgs e) 
    { 
    textBox1.Text = "hello";  
    textBox1.Font = new Font(listBox1.SelectedItem.ToString(), Convert.ToInt32(listBox2.SelectedItem.ToString())); 
    } 

你可能想要刪除在代碼中selectedindexchanged方法,如果你要使用一個按鈕壽。取決於你想要的。

編輯:

public Form2() 
    { 
     InitializeComponent(); 
     listBox1.Items.Add("Arial"); 
     listBox1.Items.Add("Calibri"); 
     listBox1.Items.Add("Times New Roman"); 
     listBox1.Items.Add("Verdana"); 

     listBox2.Items.Add("8"); 
     listBox2.Items.Add("10"); 
     listBox2.Items.Add("12"); 
     listBox2.Items.Add("14"); 
     listBox1.SelectedIndex = 0; 
     listBox2.SelectedIndex = 0; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
    textBox1.Text = "hello";  
    textBox1.Font = new Font(listBox1.SelectedItem.ToString(), Convert.ToInt32(listBox2.SelectedItem.ToString())); 
    } 

如果你只是使用上面的代碼就可以工作了,你想讓它。我試了一下自己,它對我來說工作得很好

+0

嗨,我正在嘗試這個,馬上回來。謝謝 – Rocky 2012-07-08 20:48:11

+0

我現在有這個錯誤消息: 'FontForm.Form1'不包含'textBox1_TextChanged'的定義,並且沒有擴展方法'textBox1_TextChanged'接受類型'FontForm.Form1'的第一個參數可以找到(你是否缺少一個使用指令或程序集引用?) – Rocky 2012-07-08 20:53:29

+0

在您的窗體中,刪除文本框控件,並只添加一個新的。確保它具有相同的名稱 - >「textBox1」。 – Thousand 2012-07-08 20:57:14

1

這是我的最終提交。感謝所有的建議傢伙。

public Form1() 
    { 
     InitializeComponent(); 
     //populate listbox1 
     listBox1.Items.Add("Arial"); 
     listBox1.Items.Add("Calibri"); 
     listBox1.Items.Add("Times New Roman"); 
     listBox1.Items.Add("Verdana"); 
     listBox1.SelectedIndex = 0; // <--- set default selection for listBox1 

     //populate listbox2 
     listBox2.Items.Add("8"); 
     listBox2.Items.Add("10"); 
     listBox2.Items.Add("12"); 
     listBox2.Items.Add("14"); 
     listBox2.SelectedIndex = 0; // <--- set default selection for listBox2 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     textBox1.Text = "hello";   
     textBox1.Font = new Font(listBox1.SelectedItem.ToString(), Convert.ToInt32(listBox2.SelectedItem.ToString())); 
    } 

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

    } 

    private void listBox2_SelectedIndexChanged(object sender, EventArgs e) 
    { 

    } 

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 

    } 
} 

}

相關問題