如何使用c#在picturebox中重置为默认背景色?

如何使用c#在picturebox中重置为默认背景色?,c#,winforms,picturebox,C#,Winforms,Picturebox,我需要你的帮助。我用C#,Winforms中的画框制作了一架钢琴。在pictureboxes的属性中,我将背景色设置为适当的注释(白色和黑色注释) 我创建了一个组合框,这样我可以选择和弦,比如C和弦,D和弦。。。在这个链接上你可以看到C和弦的正确注释 当我选择一个和弦(如C和弦)时,相应音符的背景色变为红色,但当我在组合框中选择另一个和弦时,出现问题,之前选择的和弦保持红色 所以我的问题是,当我在组合框中选择其他内容时,是否可以将背景色设置回默认设置或破坏以前的行为,或者我需要使用pictur

我需要你的帮助。我用C#,Winforms中的画框制作了一架钢琴。在pictureboxes的属性中,我将背景色设置为适当的注释(白色和黑色注释)

我创建了一个组合框,这样我可以选择和弦,比如C和弦,D和弦。。。在这个链接上你可以看到C和弦的正确注释

当我选择一个和弦(如C和弦)时,相应音符的背景色变为红色,但当我在组合框中选择另一个和弦时,出现问题,之前选择的和弦保持红色

所以我的问题是,当我在组合框中选择其他内容时,是否可以将背景色设置回默认设置或破坏以前的行为,或者我需要使用picturebox之外的其他内容

这是我的代码:

private void comboBox_selectNote_SelectedIndexChanged(object sender, EventArgs e)
    {
        switch (comboBox_selectNote.SelectedIndex)
        {
            case 0: //C
                //RED
                pbC1.BackColor = Color.Red;
                pbE1.BackColor = Color.Red;
                pbG1.BackColor = Color.Red;
                break;
            case 1: //C#
                //RED
                pbCsharp1.BackColor = Color.Red;
                pbF1.BackColor = Color.Red;
                pbGsharp1.BackColor = Color.Red;
                break;


我需要你的帮助,我已经尝试了一些东西,但是没有用。

你必须将另一个
图片盒的
背景色重新指定为原始颜色。例如,您可以创建一个存储原始颜色的
Color
s数组,然后将这些颜色复制到要重置的
PictureBox
-es中。一些代码:

// assumes you have NUM_KEYS piano keys / PictureBoxes
Color[] pianoKeyColors = new Color[NUM_KEYS];
// fill the pianoKeyColors array with the colors you want,
// perhaps alternating white-black-white- ...
// you may want to do that in the constructor for your Form

// you should also store the PictureBox-es in an array, so you can easily
// reference the one you want

private void comboBox_selectNote_SelectedIndexChanged(object sender, EventArgs e)
{
    // reset all PictureBox-es to the original colors
    for (int key = 0; key < NUM_KEYS; key++)
        pianoKeys[key].BackColor = pianoKeyColors[key];
    // and then only set the BackColor to Red of keys in the chord
    switch (comboBox_selectNode.SelectedIndex)
    {
        case 0: // C chord
            pianoKeys[KEY_C1].BackColor = Color.Red;
            pianoKeys[KEY_E1].BackColor = Color.Red;
            pianoKeys[KEY_G1].BackColor = Color.Red
            break;
        ... and the other cases ...
    }
}
//假设您有NUM_键钢琴键/图片框
颜色[]PianokeyColor=新颜色[NUM_KEYS];
//用所需的颜色填充PianokeyColor数组,
//也许黑白交替。。。
//您可能希望在窗体的构造函数中执行此操作
//还应将PictureBox es存储在阵列中,以便
//参考你想要的
私有无效组合框\u selectNote\u SelectedIndexChanged(对象发送方,事件参数e)
{
//将所有PictureBox es重置为原始颜色
对于(int key=0;key
是WinForms还是WPF?@feralin是winformsok。你试过我的答案了吗?@feralin你的意思是我需要把图片框的颜色放在一个数组中吗?我会更新我的答案以包含一些代码。谢谢你……我在C语言中学习和工作过,但我有点忘了:)