0

我已经在这个项目上工作了几天,它是一个 C# Windows Visual Studio 2010 表单,我一直在发布与同一个项目相关的不同问题;正如我被告知要发布不同的问题而不是将它们全部放在同一个帖子中。所以这就是项目:创建一个包含两个 ListBox 的表单——一个包含至少四个字体名称,另一个包含至少四个字体大小。如果用户未能做出选择,则让每个列表中的第一项成为默认选择。每个 ListBox 只允许一个选择。用户单击按钮后,以选定的字体和大小显示“Hello”。这次我在文本框中获取消息以根据用户选择的字体类型和大小显示时遇到问题。这是我在编码中的位置:

    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)
    {

    }
}

}

现在我试图从单击的按钮中引发呼叫,该按钮将在用户选择的字体和字体大小中显示消息“Hello”。任何建议将不胜感激。

4

2 回答 2

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()));  
    }

如果您只使用上面的代码,一切都应该按照您的意愿工作。我自己试过了,对我来说效果很好

于 2012-07-08T20:39:27.157 回答
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)
    {

    } 
}

}

于 2012-07-08T22:12:41.327 回答