Кнопки сравнить просто так не получится, это разные экземпляры и они будут разными, даже если имеют одинаковый набор значений свойств.
Можно сравнить, например,
Text.
Для этого достаточно сделать переменную на уровне класса, в которую помещать текст первой нажатой кнопки (или ссылку на саму кнопку). Когда будет нажата следующая кнопка, сравнивать её текст с сохраненным значением.
private Button FirstButton = null;
void S_MouseClick(object sender, MouseEventArgs e)
{
var button = (sender as Button);
if (this.FirstButton == null)
{
// это первая кнопка в текущей сессии,
// запоминаем ссылку на кнопку
this.FirstButton = button;
}
else
{
// это вторая кнопка в текущей сессии
// сравниваем текст с первой
if (this.FirstButton.Text == button.Text)
{
Console.WriteLine("Текст совпадает!");
// меняем свойства кнопок
this.FirstButton.Text = button.Text = "--";
this.FirstButton.Enabled = button.Enabled = false;
}
else
{
Console.WriteLine("Текст не совпадает.");
}
// сбрасываем выбор, запуская тем самым новую сессию
this.FirstButton = null;
}
}
Если понадобится сравнивать более двух кнопок, то придется делать коллекцию.
Вместо
Text можно сравнивать по какому-нибудь другому признаку. У элементов есть свойство
Tag, которое можно использовать для хранения любых дополнительных данных.
Если все будет совсем сложно, то можно расширить
Button дополнительными свойствами путем наследования. В таком случае можно будет переопределить
Equals и с операторами поиграть.