我可以在列表框中将多个选定项目显示在按钮单击的文本框中,但如何在消息框中显示相同的内容?我的意思是在消息框上显示第一项不是问题,而是同时显示多个项目。建议请...
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
Skill = checkedListBox1.SelectedItem.ToString();
if (e.NewValue == CheckState.Checked)
{
listBox1.Items.Add(Skill);
}
else
{
listBox1.Items.Remove(Skill);
}
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("You have selected following Skills : \n"+Skill, "Selected Skills",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
答案 0 :(得分:0)
您不会显示定义Skill
的位置,但可能是该类的属性。您只需在Skill
中初始化checkedListBox1_ItemCheck
。如果选择已更改,则该值将过时(它不会反映现实)。
对代码的最短更改是在按钮处理程序中不使用Skill
,而是从列表框中获取当前状态(如果您喜欢该样式,可能将其放在局部变量中)。
private void button1_Click(object sender, EventArgs e)
{
var selectedSkills = checkedListBox1.SelectedItem.ToString();
MessageBox.Show("You have selected following Skills : \n"+selectedSkills, "Selected Skills",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
答案 1 :(得分:0)
看起来你要用最后一个要检查的值覆盖Skill
。因此,我希望消息框始终显示与您单击的最后一项相关的Skill
。因此,如果您想要显示所有这些内容,则需要使用Skill
MessageBox.Show
来电中的listBox1.Items.Cast<string>().Aggregate((o, n) => o.ToString() + "," + n.ToString())
*注意:将Cast<string>
替换为任何类型的对象Skill
。
如:
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
Skill = checkedListBox1.SelectedItem.ToString();
if (e.NewValue == CheckState.Checked)
{
listBox1.Items.Add(Skill);
}
else
{
listBox1.Items.Remove(Skill);
}
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("You have selected following Skills : \n"+ listBox1.Items.Cast<string>().Aggregate((o, n) => o.ToString() + "," + n.ToString()), "Selected Skills",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
答案 2 :(得分:0)
您必须循环浏览所选项目并将其附加到文本框中。要在消息框上显示,您需要将所选项目连接到字符串变量并将其用于您的消息。
private void button1_Click(object sender, EventArgs e)
{
StringBuilder skills = new StringBuilder();
foreach (object item in listBox1.SelectedItems)
{
skills.AppendLine(item.ToString());
}
MessageBox.Show("You have selected following Skills : \n" + skills.ToString(), "Selected Skills",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}