我創建了一個帶有背景影像的更改按鈕。此按鈕的FlatAppearance.BorderSize屬性為零,因此通常顯示時沒有邊框。但如果我changing_button禁用,它將有一個黑色邊框:

如何洗掉此邊框?
我猜想出現邊框changing_button是因為處于焦點狀態,然后我更改了它的 Enable 屬性。出于這個原因,我試圖從按鈕和 set 中移除焦點changing_button.TabStop = false,但它沒有幫助。
using System;
using System.Drawing;
using System.Windows.Forms;
namespace winforms_test_1
{
public partial class Form1 : Form
{
Button changing_button;
private readonly Image enable_img = Image.FromFile("D://images//enable_img.png");
private readonly Image disable_img = Image.FromFile("D://images//disable_img.png");
public Form1()
{
InitializeComponent();
TableLayoutPanel main_panel = new TableLayoutPanel
{
BackColor = Color.White,
Dock = DockStyle.Fill
};
CreateButton();
Controls.Add(changing_button);
}
private void CreateButton()
{
changing_button = new Button
{
BackgroundImage = enable_img,
BackgroundImageLayout = ImageLayout.Center,
TabIndex = 1,
TabStop = false,
FlatStyle = FlatStyle.Flat,
Margin = new Padding(10, 10, 0, 0),
Location = new Point(40, 40),
};
changing_button.FlatAppearance.BorderSize = 0;
changing_button.Size = new Size(80, 50);
changing_button.Click = new System.EventHandler(this.Button_Click);
}
void Button_Click(object sender, EventArgs e)
{
changing_button.BackgroundImage = disable_img;
changing_button.Enabled = false;
changing_button.TabStop = false;
}
}
}
enable_img.png:
disable_img.png:
uj5u.com熱心網友回復:
To workaround this, I set the border size to 1.
Then set the border color to be the same color of BackColor. Just change on the click event to match the current state.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/452661.html
