Так что я не совсем уверен, почему это происходит, но я просматриваю некоторые DataRows, где у меня есть имя, свойство и значение элемента управления, которое я хотите установить. Все работает отлично, за исключением случаев, когда я устанавливаю свойство TEXT кнопки. По какой-то причине, событие щелчка называется ...System.Reflection.PropertyInfo.SetValue() вызывает обработчик события по умолчанию кнопки
Вот некоторые из кода, который я получил:
string controlName, value, property;
Control currentControl = null;
System.Reflection.PropertyInfo propertyInfo = null;
// run through all rows in the table and set the property
foreach (DataRow r in languageDataset.Tables[_parentForm.Name].Rows)
{
controlName = r["ControlName"].ToString().ToUpper();
value = r["Value"].ToString();
property = r["Property"].ToString();
// check all controls on the form
foreach (Control c in formControls)
{
// only change it if its the right control
if (c.Name.ToUpper() == controlName)
{
propertyInfo = c.GetType().GetProperty(property);
if (propertyInfo != null)
propertyInfo.SetValue(c, value, null); ******Calls Event Handler?!?!******
//
currentControl = c;
break;
}
}
}
Так почему в мире бы он вызывает обработчик события при установке значения? Вот что я устанавливаю его, что причиной этого:
<SnappletChangePassword>
<ControlName>buttonAcceptPassword</ControlName>
<Property>Text</Property>
<Value>Accept</Value>
</SnappletChangePassword>
Вы абсолютно уверены, что это вызов обработчика Click, а не обработчик TextChanged? Попытка воспроизвести сейчас, хотя - интересная ... – 2008-11-21 18:43:49