C# MouseHover 上的按钮透明背景

标签 c# button

我有一个用代码创建的按钮,它有一个背景图像并且是透明的。到目前为止一切顺利,它有效,可怕的灰色背景颜色消失了。 除了当我将鼠标悬停在其上时,令人恼火的情况不断出现。

所以我尝试了我能想到的,那就是添加一个事件监听器,它将在鼠标悬停、输入和离开时将背景颜色更改为透明。但似乎没有任何作用。

有什么想法吗?

这是我到目前为止的代码:

    private void CreateFirstScreen() {
        mainForm.BackgroundImage = Image.FromFile(@"[img dir]");

        Button nextBtn = new Button();
        nextBtn.BackColor = Color.Transparent;        <== this works!
        nextBtn.BackgroundImage = Image.FromFile(@"[img dir]");
        nextBtn.FlatStyle = FlatStyle.Flat;

        nextBtn.FlatAppearance.BorderSize = 0;
        nextBtn.SetBounds(1555, 820, 274, 106);

        mainForm.Controls.Add(nextBtn);


        nextBtn.MouseHover += (sender, args) => {
            nextBtn.BackColor = Color.Transparent;    <= doesn't work
        };
        nextBtn.MouseEnter += (sender, args) => {
            nextBtn.BackColor = Color.Transparent;    <= doesn't work
        };
        nextBtn.MouseLeave += (sender, args) => {
            nextBtn.BackColor = Color.Transparent;    <= doesn't work
        };
        nextBtn.Click += (sender, args) => {
            CreateSecondScreen();                     <= does work
            mainForm.Controls.Remove(nextBtn);        <= does work
        };
    }

最佳答案

尝试添加以下内容:

nextBtn.FlatAppearance.MouseOverBackColor=Color.Transparent;

关于C# MouseHover 上的按钮透明背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19844306/

相关文章:

c# - 如何将显示的 sql 数据加载到 wpf 可滚动 ListView 中?没有遇到内存问题的大集合(20k+)?

c# - 在 C# 中读取来自 Gmail 的电子邮件

java - 如何设置按钮上的文字颜色? java

python - 如何修改 .textinput 中的按钮?

java - 带有自定义数组 JButtons 的 JOptionPane

c# - 如何确定属性是否被覆盖?

c# - 从 Office Web 加载项访问 C# 库

c# - 按 F5 时阻止页面刷新

Python (tkinter) 错误 : "CRC check failed"

c++ - 未绘制 QToolButton 上的文本