Я полагаю, что при отмене проверки checkBox1 должен удалить "Hello"?
Вот подход, который учитывает все четыре возможности ... "", "Hello", "Hello World" и "World" :
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
fooBar();
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
fooBar();
}
private void fooBar()
{
label1.Text = (checkBox1.Checked ? "Hello" : "") +
(checkBox1.Checked && checkBox2.Checked ? " " : "") +
(checkBox2.Checked ? "World" : "");
}
Если ПОРЯДОК «Привет» и «Мир» не важен, то, возможно, вам это больше нравится?
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
label1.Text += (label1.Text.Length == 0 ? "" : " ") + "Hello";
}
else
{
label1.Text = label1.Text.Replace("Hello", "").Trim();
}
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (checkBox2.Checked)
{
label1.Text += (label1.Text.Length == 0 ? "" : " ") + "World";
}
else
{
label1.Text = label1.Text.Replace("World", "").Trim();
}
}