Я хочу сделать свою собственную кнопку с двумя другими кнопками внутри, и я хочу сделать их прозрачными, но прозрачность не работает - PullRequest
0 голосов
/ 25 января 2019

У меня есть кнопка, я положил в нее 2 другие кнопки. Я хочу, чтобы эти 2 другие кнопки появлялись только при входе в основную кнопку с помощью мыши. Когда я вхожу в нее, я хочу, чтобы две другие кнопки были наполовину непрозрачными и были полностью непрозрачными только при вводе одной из этих двух кнопок.

Эти кнопки находятся внутри FlowLayoutPanel с фоновым изображением. Вот как они выглядят:

enter image description here

Кнопки имеют изображение внутри и текст.

Вот мой код:

public class MyButton : Button
{
    public MyButton()
    {
        SetStyle(ControlStyles.StandardClick | 
                 ControlStyles.StandardDoubleClick, true);

        Text = component.ProductsName;
        TextAlign = ContentAlignment.TopCenter;
        ImageAlign = ContentAlignment.TopLeft;
        Size = new Size(178, 75);

        foreach (Button item in CustomButtons())
        {
            Controls.Add(item);
        }
    }

    static Button[] CustomButtons()
    {
        Button delete = new Button();
        delete.Location = new Point(157, 1);
        delete.Size = new Size(20, 20);
        delete.MouseEnter += OnMouseEnter;
        delete.MouseLeave += DeleteOnMouseLeave;

        Button customize = new Button();
        customize.Location = new Point(delete.Left - 20, 1);
        customize.Size = new Size(20, 20);

        Button[] buttons = {delete, customize};
        return buttons;
    }

    private static void DeleteOnMouseLeave(object sender, EventArgs e)
    {
        Button btn = (Button) sender;
        btn.UseVisualStyleBackColor = true;
        btn.BackColor = Color.Transparent;
    }

    private static void OnMouseEnter(object sender, EventArgs e)
    {
        Button btn = (Button) sender;
        btn.UseVisualStyleBackColor = false;
        btn.FlatAppearance.MouseOverBackColor = Color.FromArgb(100, 
                                                       Color.Black);
    }
 }

Я думаю, что перепробовал все, что пришло мне в голову, я попробовал события и все, и кнопки никогда не работали, как я хотел, чтобы они работали. Любая помощь будет оценена! Спасибо! : D

1 Ответ

0 голосов
/ 31 января 2019

кажется, я решил это!Мне нужно было только установить Flatstyle = FlatStyle.Flat и backColor = Color.Transparent!: D

Вот результат: пример вывода

...