0

私はこのプロジェクトに数日間取り組んできました。これは C# Windows Visual Studio 2010 フォームであり、同じプロジェクトに関連するさまざまな質問を投稿しています。同じ投稿にすべての質問を掲載するのではなく、別の質問を投稿するように言われたためです。これがプロジェクトです。2 つの ListBox を持つフォームを作成します。1 つには少なくとも 4 つのフォント名が含まれ、もう 1 つには少なくとも 4 つのフォント サイズが含まれます。ユーザーが選択に失敗した場合、各リストの最初の項目がデフォルトの選択になります。ListBox ごとに 1 つの選択のみを許可します。ユーザーがボタンをクリックした後、選択したフォントとサイズで「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 に答える