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