私はうまく動作する次の方法を持っています:
button21.FlatAppearance.BorderSize = 0;
button21.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
ご覧のとおり、私は多くのボタン (~30) を持っているので、すべてのボタンにスタイルを適用するのではなく、Form_Load
イベントで一度にすべてのボタンに適用してみませんか? だから私はこの方法を書いた:
public void ChangeButtonStyles()
{
foreach (Control con in this.Controls)
{
if (con is Button)
{
Button but = con as Button;
but.FlatAppearance.BorderSize = 0;
but.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
}
}
}
しかし、マウスをボタンの上に置くと、背景の変化が見られるため、機能していません。これは、機能しbut.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
ていないことを証明しています
コードが機能しないのはなぜですか?
public Form1()
{
InitializeComponent();
// works
//button21.FlatAppearance.BorderSize = 0;
//button21.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
// doesn't work
ChangeButtonStyles();
}
編集:解決策
public void ChangeButtonStyles()
{
foreach (Control con in this.Controls)
{
if (con is Button)
{
Button but = con as Button;
but.FlatAppearance.BorderSize = 0;
but.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
}
if (con is GroupBox)
{
foreach (Control subcon in con.Controls)
{
if (subcon is Button)
{
Button but = subcon as Button;
but.FlatAppearance.BorderSize = 0;
but.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
}
}
}
}
}