>>400
どのプロパティーを使おうが、そのコードを書いた時と違う値が設定されてしまったら
識別子として使えないのは同じじゃないの?w

素直に「クリックされたのは○○か?」を検査するコードを書けばいい。
if (e.ClickedItem == hogeButton) { ... }

そもそもボタン自身のイベントを使えば何がクリックされたか識別するコードを書く必要がない