Пользовательская кнопка в C#: Как удалить фон при наведении курсора?

Я обнаружил, что проблема была в формате домена, который я передавал почтовому оружию.

Раньше у меня было следующее:

const mailgun = require('mailgun-js')({
  apiKey: 'XXXXXXXXXX', 
  domain: 'https://api.mailgun.net/v3/XXXXXXXXX'
})

Проблема в том, что значение для domain не должно включать в себя https://api.mailgun.net/v3/ часть URL. Вместо этого он должен иметь ТОЛЬКО ваш домен, например mail.mydomain.com

8
задан Marek Grzenkowicz 15 December 2015 в 21:38
поделиться

3 ответа

Серый фон происходит из-за установки "Системы. Windows. Формы. FlatStyle. Плоский", это - поведение по умолчанию, начиная с него, должен выделить кнопку, когда Вы толпитесь. Для устранения этого Вам, возможно, придется записать класс пользовательской кнопки, наследоваться исходной кнопке и сделать некоторое пользовательское рисование для достижения этого.

Btw, вместо того, чтобы установить "включил" в MouseHover, необходимо сделать это в MouseEnter. MouseEnter и MouseLeave являются парой, которые указывают, является ли мышью, в кнопке или нет, и это запущено однажды на запись/выход. Где, поскольку MouseHover является огнем каждый раз, когда мышь, перемещенная в кнопке, которые создают unnessecery, повторила установку "включенных".

11
ответ дан 5 December 2019 в 04:31
поделиться

Я решил это использование маркировки вместо кнопки.

// 
// imageListButtons
// 
this.imageListButtons.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageListButtons.ImageStream")));
this.imageListButtons.TransparentColor = System.Drawing.Color.Transparent;
this.imageListButtons.Images.SetKeyName(0, "close_normal");
this.imageListButtons.Images.SetKeyName(1, "close_hover");
// 
// lblClose
// 
this.lblClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblClose.BackColor = System.Drawing.Color.Transparent;
this.lblClose.ImageKey = "close_normal";
this.lblClose.ImageList = this.imageListButtons;
this.lblClose.Location = new System.Drawing.Point(381, 7);
this.lblClose.Margin = new System.Windows.Forms.Padding(0);
this.lblClose.Name = "lblClose";
this.lblClose.Size = new System.Drawing.Size(12, 12);
this.lblClose.TabIndex = 0;
this.lblClose.MouseLeave += new System.EventHandler(this.lblClose_MouseLeave);
this.lblClose.MouseClick += new System.Windows.Forms.MouseEventHandler(this.lblClose_MouseClick);
this.lblClose.MouseEnter += new System.EventHandler(this.lblClose_MouseEnter);


private void lblClose_MouseEnter(object sender, EventArgs e)
{
    lblClose.ImageKey = "close_hover";
}

private void lblClose_MouseLeave(object sender, EventArgs e)
{
    lblClose.ImageKey = "close_normal";
}

private void lblClose_MouseClick(object sender, MouseEventArgs e)
{
    this.Close();
}

PS: заметьте, что я использую теперь кнопку с двумя состояниями, вместо три. Это предназначается (я знаю, что все еще могу использовать три).

2
ответ дан 5 December 2019 в 04:31
поделиться
btnClose.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
39
ответ дан 5 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: