c# - 使用 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;
}
}
在此处输入代码
解决方案
这是不可能的。在条件上进行测试意味着在 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;
}
}
推荐阅读
- c# - 将测试项目添加到解决方案找不到测试,一旦我添加项目引用并编写基本测试方法就很困惑
- javascript - 轮询 API,直到响应对象中的路径成功 | 失败 - 打字稿
- python - 如何在熊猫中连接两个或多个具有不同列名的数据框
- angular - 如何重新加载角度构造函数
- ceph - ceph active+undersized warning
- c# - 在 C# 中运行需要登录的 PowerShell 脚本
- flutter - Flutter Hive 模型抛出索引超出范围:没有有效的索引:填充 HiveList 时出现 0 错误
- powerbi - Power Bi 从变量中拆分列
- reactjs - 如何在 Firebase 登录的异步功能上使用 UseEffect 清理?
- r - 错误:在points2grid(points,tolerance,round)中:维度1:坐标间隔不是恒定的