Что вы можете сделать, это создать список имен функций, которые вы хотели бы вызвать в вашем событии, затем получить имя метода из списка, используя рефлексию, вызвать интересующий вас метод, а затем удалить это имя метода из списка... В следующий раз, когда событие будет вызвано снова, метод не будет выполнен, пока его не будет в списке ... что-то вроде:
List<string> listMethod = new List<string>();
listMethod.Add("LoadSomeData");
затем
void rb_CheckedChanged(x, y)
{
string methodName = listMethod[0];
Type.InvokeMember(
methodName,
BindingFlags.InvokeMethod | BindingFlags.Public |
BindingFlags.Static,
null,
null,
null);
listMethod.Clear(); //or remove what ever you want
}
Информацию о вызове динамического метода можно получить по адресу: http://www.codeproject.com/KB/cs/CallMethodNameInString.aspx