首页 > 解决方案 > 使用 void 方法作为 while 循环中的条件

问题描述

我制作了一个下拉框,并制作了一个每次单击时都会更改按钮颜色的方法。但是,单击按钮后 mouseHover 颜色不会消失,因此我必须从按钮上移动指针才能查看更改后的按钮颜色。我正在尝试创建一种方法,该方法将在单击按钮后禁用或更改鼠标悬停颜色。

我想制作一种新方法,在单击后将鼠标悬停颜色更改为按钮颜色。所以我想使用一个 while 循环,当更改颜色的方法正在运行时将运行该循环。

我该怎么做 ??

这是改变鼠标悬停颜色的方法(我还没弄明白)

 private void hidemouseHover(Button btn)
    {
        while (showbtncolor(btn))
        { 
        }
    }

这是单击后更改按钮颜色的方法

 private void showbtncolor(Button btn)
    {
        if (btn.BackColor != Color.FromArgb(92, 0, 230))
        {
            hideallcolour();

            btn.BackColor = Color.FromArgb(92, 0, 230);


        }
        else 
        {
            btn.BackColor = Color.Transparent;

        }
    }

在此处输入代码

标签: c#loops

解决方案


这是不可能的。在条件上进行测试意味着在 void 之外的其他东西上进行测试。

您可以修改 showbtncolor() 方法以返回布尔值并确定 if 语句中的哪个条件将返回 true,而另一个条件将返回 false。例如,我建议探索修改 showbtncolor() 方法如下:

private bool showbtncolor(Button btn)
{
    if (btn.BackColor != Color.FromArgb(92, 0, 230))
    {
        hideallcolour();

        btn.BackColor = Color.FromArgb(92, 0, 230);
        return true;

    }
    else
    {
        btn.BackColor = Color.Transparent;
        return false;
    }
}

推荐阅读