Tôi đang cố gắng thực hiện một nút tùy chỉnh cho biểu mẫu của tôi (có FormBorderStyle = none) bằng Visual Studio 2005. Tôi có 3 hình ảnh nút trạng thái của tôi trong một ImageList được liên kết với nút.Nút tùy chỉnh trong C#: Cách xóa nền di chuột?
this.btnClose.AutoSize = false;
this.btnClose.BackColor = System.Drawing.Color.Transparent;
this.btnClose.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.btnClose.FlatAppearance.BorderSize = 0;
this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnClose.ForeColor = System.Drawing.Color.Transparent;
this.btnClose.ImageKey = "Disabled";
this.btnClose.ImageList = this.imageList1;
this.btnClose.Location = new System.Drawing.Point(368, -5);
this.btnClose.Margin = new System.Windows.Forms.Padding(0);
this.btnClose.Name = "btnClose";
this.btnClose.Size = new System.Drawing.Size(31, 31);
this.btnClose.TabIndex = 0;
this.btnClose.UseVisualStyleBackColor = false;
this.btnClose.MouseLeave += new System.EventHandler(this.btnClose_MouseLeave);
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
this.btnClose.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btnClose_MouseDown);
this.btnClose.MouseHover += new System.EventHandler(this.btnClose_MouseHover);
private void btnClose_MouseHover(object sender, EventArgs e)
{
btnClose.ImageKey = "enabled";
}
private void btnClose_MouseDown(object sender, MouseEventArgs e)
{
btnClose.ImageKey = "down";
}
private void btnClose_MouseLeave(object sender, EventArgs e)
{
btnClose.ImageKey = "disabled";
}
Tất cả đều đang hoạt động nhưng có một điểm bắt. Bất cứ khi nào tôi di chuyển chuột di chuột vào nút Tôi nhận được một nền màu xám thực sự gây phiền nhiễu.
Tôi làm cách nào để xóa nội dung đó?
Cảm ơn bạn đã sử dụng mẹo MouseEnter, đã giải quyết được vấn đề về sự thay đổi BackColor-chậm chạp của tôi! – TechNyquist