【发布时间】:2018-05-01 14:58:31
【问题描述】:
我正在编写计算红色背景按钮点击次数的函数。 此功能不起作用。 我有 40 个具有相同功能的按钮,用于单击“ButClick”。 但是当我点击任何按钮(例如绿色背景)时 - 计数器计数。我只想在单击带有红色背景的按钮时才这样做。
private void But_Click(object sender, RoutedEventArgs e)
{
var column = Grid.GetColumn(sender as Button);
var row = Grid.GetRow(sender as Button);
LabelX.Content = column.ToString();
LabelY.Content = row.ToString();
if ((sender as Button).Background == new SolidColorBrush(Colors.Red));
{
counts += 1;
LabelCounterOfClick.Content = counts.ToString();
}
}
更新
现在它不计算任何东西。当我点击任何按钮时 - 计数器显示 0。如果有问题,我会处理一些功能问题(它不会检测到红色)
private void But_Click(object sender, RoutedEventArgs e)
{
var column = Grid.GetColumn(sender as Button);
var row = Grid.GetRow(sender as Button);
LabelX.Content = column.ToString();
LabelY.Content = row.ToString();
if ((sender as Button).Background == new SolidColorBrush(Colors.Red))
{
counts += 1;
}
else
{
counts = 0;
}
LabelCounterOfClick.Content = counts.ToString();
}
其余代码。
namespace Silnik_Zmiany_koloru
{
public partial class MainWindow : Window
{
public Random _random;
public MainWindow()
{
InitializeComponent();
DispatcherTimer dt = new DispatcherTimer();
dt.Interval = TimeSpan.FromSeconds(1);
dt.Tick += Dt_Tick;
dt.Start();
}
private void Dt_Tick(object sender, EventArgs e)
{
Losowanie(); // zmiana kolorow (losowe)
}
int counts = 0;
private void But0_0_Click(object sender, RoutedEventArgs e)
{
Losowanie();
}
private Random random = new Random();
private Random random1 = new Random();
int ilosc_kolorow = 3;
private Color[] colors = new Color[]
{
Colors.Red,
Colors.Blue,
Colors.Green,
};
private void Losowanie()
{
for (int i = 0; i <= 6; i++)
{
for (int k = 3; k <= 10; k++)
{
var ele = MainGrid.FindName("But" + i + "_" + random.Next(0, 8));
Button button = ele as Button;
if (button != null)
{
Change_color(button);
}
}
}
}
}
}
【问题讨论】:
-
你可以console.write (sender as Button).Background 同时点击红色按钮吗?
-
您确定
else条件没有将其重置为 0?