我想知道是否有人可以帮助我解决按钮效应我正在为Windows c#论坛工作。
所以我有两个相似的图像,一个背景发光,另一个没有,创建一个按钮。
我正在使用mouseEnter(glow)
和mouseLeave(normal)
来生效一个正常工作的按钮。
我在同一表格上有8个不同的按钮,有不同的图像。
我希望mouseElick事件在我点击按钮,即发光效果后继续,但我无法得到正确的解决方案。 当点击不同的(下一个)按钮时,发光的按钮应该恢复正常。
想知道是否有人能够指出我朝着正确的方向发展,在网上进行一些搜索还是没有能够提出解决方案。
private void btnSong1_MouseEnter(object sender, EventArgs e)
{
this.btnSong1.BackgroundImage =
((System.Drawing.Image)(Properties.Resources.satisfactionH));
}
private void btnSong1_MouseLeave(object sender, EventArgs e)
{
this.btnSong1.BackgroundImage =
((System.Drawing.Image)(Properties.Resources.satisfaction));
}
private void btnSong1_Click(object sender, EventArgs e)
{
nowPlaying1.Visible = Enabled;
nowPlaying2.Visible = false;
nowPlaying5.Visible = false;
this.btnSong1.BackgroundImage =
((System.Drawing.Image)(Properties.Resources.satisfactionH));
axWindowsMediaPlayer1.URL =
@"C:\MediaFile\music\ArethaFranklin\(I Can't Get No) Satisfaction.mp3";
}
private void btnSong2_Click(object sender, EventArgs e)
{
this.btnSong1.BackgroundImage =
((System.Drawing.Image)(Properties.Resources.satisfaction));
axWindowsMediaPlayer1.URL = @"C:\MediaFile\music\ArethaFranklin\Come To Me.mp3";
nowPlaying1.Visible = false;
nowPlaying2.Visible = Enabled;
nowPlaying5.Visible = false;
}
答案 0 :(得分:1)
您是否尝试使用自己的buttonClass。我做了一个快速演示GlowingButton
。单击播放给定的songUrl,鼠标输入时发光并在离开或单击时重置背景。
// don't forget: using System.Runtime.InteropServices;
class GlowingButton : System.Windows.Forms.Button
{
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand,
StringBuilder strReturn,
int iReturnLength,
IntPtr hwndCallback);
public string SongURL { get; set; }
public GlowingButton() : base()
{
this.BackgroundImage = Winforms_Demo.Properties.Resources.bg;
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
}
protected override void OnMouseEnter(EventArgs e)
{
base.OnMouseEnter(e);
this.BackgroundImage = Winforms_Demo.Properties.Resources.bgGlow;
}
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
this.BackgroundImage = Winforms_Demo.Properties.Resources.bg;
}
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
this.BackgroundImage = Winforms_Demo.Properties.Resources.bg;
if (!string.IsNullOrEmpty(SongURL))
{
mciSendString("open \"" + SongURL + "\" type mpegvideo alias MediaFile", null, 0, IntPtr.Zero);
mciSendString("play MediaFile", null, 0, IntPtr.Zero);
}
}
}
在您的表单中,您只需为每个glowingButton 设置一个 songUrl (通过设计师或您的来源)!