我正在尝试使用C#,但我对它相当缺乏经验。我有一个按钮,上面有文本和图像。当我运行程序并按下按钮时,按钮和文本沿着被推入,但图像保持静态。
有人知道变通办法吗?
- 编辑:
this.btnRename.AllowDrop = true;
this.btnRename.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.btnRename.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.btnRename.Image = ((System.Drawing.Image)(resources.GetObject("btnRename.Image")));
this.btnRename.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
this.btnRename.Location = new System.Drawing.Point(675, 3);
this.btnRename.Margin = new System.Windows.Forms.Padding(0);
this.btnRename.Name = "btnRename";
this.btnRename.Size = new System.Drawing.Size(55, 48);
this.btnRename.TabIndex = 7;
this.btnRename.Text = "&Rename";
this.btnRename.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
this.btnRename.UseVisualStyleBackColor = false;
this.btnRename.Click += new System.EventHandler(this.btnRename_Click);
2条答案
按热度按时间brtdzjyr1#
.NET不会自动为您执行此操作,因为它不知道您希望单击按钮时图像会发生什么变化。向左移动...等等。也许您可以实现MouseDown和MouseUp事件?在MouseDown上,您可以让它将图像更改为您希望看到的“推入”图像,然后在MouseUp上将其更改回来。当然,这涉及到你基本上有2个图像,一个“点击”和一个“正常”版本。
ax6ht2ek2#
我在使用自定义图像按钮时遇到了同样的问题。我所做的是通过覆盖
OnMouseDown
事件处理程序来模拟“按钮闪烁”。闪烁是通过在按钮上画一个半透明的矩形来模拟的。需要
Thread.Sleep()
,否则我看不到效果。