-3

私は非常に新しく、このプロジェクトをどのように達成できるかについて非常に混乱しています。プロジェクトでは、2つのリストボックスを含むフォームを作成するように要求されます。1つには少なくとも4つのフォント名が含まれ、もう1つには少なくとも4つのフォントサイズが含まれます。ユーザーが選択に失敗した場合は、各リストの最初の項目をデフォルトの選択にします。ListBoxごとに1つの選択のみを許可します。これは私が問題を抱え始めているところです。ユーザーが選択したものをメッセージに表示する必要はありませんが、ユーザーが選択したフォントのサイズとタイプを反映したメッセージを表示する必要があります。ユーザーがボタンをクリックした後、選択したフォントとサイズで「こんにちは」を表示します。C#Windows VisualStudio2010フォームで目的のフォントでメッセージを表示するためのボタンを取得するのに助けが必要です。私は私を始めるために書かれた基本的なコードを持っています。それは以下を含みます:

public partial class Form1 : Form
{
    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;

        this.listBox2.SelectedIndexChanged += new System.EventHandler(this.listBox2_SelectedIndexChanged);
        listBox2.SelectedIndex = 0;         
    }

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

    }

    private void button1_Click(object sender, EventArgs e)
    {

    }
}

}

これがこのプロジェクトの始まりであるため、ユーザーが選択したフォント名とサイズは、最終的に、選択したフォント名とサイズでメッセージを生成します。今、私は、ユーザーが選択したフォントとフォントサイズで「こんにちは」というメッセージを表示するボタンをクリックしてから呼び出しを引き出しようとしています。任意の提案をいただければ幸いです。

4

2 に答える 2

1

リストボックスのデフォルト値を設定するには:

        listBox1.SelectedItem = "Arial";
        listBox2.SelectedItem = "8";

またはより良い「動的ソリューション」:

      listBox1.SelectedIndex = 0;
      listBox2.SelectedIndex = 0;

次のコードは、ユーザーがリストボックスで選択した内容に応じて、テキストのフォントとサイズを変更します。

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

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

編集:テキストボックスにテキストがない可能性があるため、エラーが発生します。

TextBox1.Text ="this is some text"; 

これをフォームに追加します。

于 2012-07-08T18:46:12.657 に答える
1

このプロパティを使用してListBox.SelectedIndex、リストボックスの初期選択を設定できます。たとえば、次のコード行を追加して、イベントハンドラーを追加した後、リストボックスの最初の項目を明示的に選択できます。

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

デフォルトではSelectedIndex、aのプロパティListBoxは-1です。これは、選択がないことを意味します。

2番目の質問に答えるために、選択したフォントとサイズで「Hello」を表示するには、textBox1コントロールのフォントを変更するだけでよいと想定します。

まず、textBox1にテキストが含まれていることを確認します。:を呼び出した後、このステートメントをForm1コンストラクターに入れます。InitializeComponent

textBox1.Text = "Hello!";

次に、イベントハンドラーを変更して、フォントの書体とサイズを変更します。

private void UpdateFont()
{
    if (listBox1.SelectedIndex == -1 || listBox2.SelectedIndex == -1)
        return;  // selection not complete yet, so do nothing

    string typeface = listBox1.SelectedItem.ToString();
    float size = Convert.ToSingle(listBox2.SelectedItem.ToString());

    textBox1.Font = new Font(typeface, size);
}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)  
{  
    UpdateFont();
}  

private void listBox2_SelectedIndexChanged(object sender, EventArgs e)  
{  
    UpdateFont();
}  
于 2012-07-08T18:47:19.507 に答える