如何使用c#在图片框中重置为默认背景色
本文关键字:默认 背景色 何使用 | 更新日期: 2023-09-27 18:05:59
我需要你的帮助。我在c#, Winforms中使用图片框创建了一个钢琴。在图片框的属性中,我已经将背景色设置为适当的注释(白色和黑色注释)。
我创建了一个组合框,所以我可以选择和弦,如C和弦,D和弦…在这个链接中,你可以看到C和弦的正确音符。
钢琴c和弦
当我选择一个和弦(如C和弦)时,适当音符的背景色变为红色,但是当我在组合框中选择另一个和弦时,前面选择的和弦会保持红色。
所以我的问题是,无论如何我可以设置回默认设置的背景色或破坏以前的行为,当我在组合框中选择别的东西,或者我需要使用别的东西除了图片框??
这是我的代码:
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;
…
我需要你的帮助,我已经尝试了一些东西,但它没有工作
您必须将其他PictureBox
-es的BackColor
重新分配为原始颜色。例如,您可以创建一个存储原始颜色的Color
- s数组,然后将这些颜色复制到您想要重置的PictureBox
- s中。一些代码:
// 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 ...
}
}