单击后更改按钮图像

时间:2012-03-02 10:00:09

标签: c# winforms

我有图片cb的图片框。

PBr1_1.Image = new Bitmap(@"Logos\\Images\\cb.png");

我想将图片更改为cg.png并在点击此图片时执行一些操作。我正在尝试这样的事情,但没有成功:

private void PBr1_1_Click(object sender, EventArgs e)
{    
   if (PBr1_1.Image.ToString() == "cb.png")
          {
             PBr1_1.Image = new Bitmap(@"Logos\\Images\\cg.png");
            // Do some stuff.
          }
}

然后当我用cb单击图像时也这样做。要想象这个cb是黑色圆圈按钮图像,cg是绿色的。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

Jason是对的,您应该使用某种临时存储来保存当前的位图 Tag属性在这种情况下很有用。这里有一个示例代码:(没有错误处理)

加载事件中的某个地方

PBr1.Tag = "cb.png";`
PBr1_1.Image = new Bitmap(Path.Combine("Logos\\Images", PBr1.Tag.ToString());

然后按下按钮

private void PBr1_1_Click(object sender, EventArgs e) 
{     
   string imgPath = "Logos\\Images";
   PBr1_1.Image.Dispose();
   PBr1_1.Tag = (PBr1_1.Tag == "cb.png" ? "cg.png") : "cb.png") ; 
   Bitmap bm = new Bitmap(Path.Combine(imgPath, PBr1.Tag.ToString());
   PBr1_1.Image = bm; 
} 

答案 1 :(得分:0)

你确定“PBr1_1.Image.ToString()”真的只返回图像名称吗? 也许你应该通过将PBr1_1.Image.ToString()写入控制台或类似的东西来检查这个