private void DefinirValorPropriedade(Control controle, string propriedade, object valor) { if (controle.InvokeRequired) // verifica se o controle passado como parametro precisa de um Invoke, que é um método que é executado quando o controle precisa ser executado em thread diferente. { AtualizarControle d = new AtualizarControle(DefinirValorPropriedade); controle.Invoke(d, new object[] { controle, propriedade, valor }); } else { Type t = controle.GetType(); PropertyInfo[] props = t.GetProperties(); foreach (PropertyInfo p in props) { if (p.Name.ToUpper() == propriedade.ToUpper()) { p.SetValue(controle, valor, null); } } } }
private void DefinirValoPropriedade(Control controle, string propriedade, object valor) { if (controle.InvokeRequired) { AtualizarControle d = new AtualizarControle(DefinirValoPropriedade); controle.Invoke(d, new object[] { controle, propriedade, valor }); } else { Type t = controle.GetType(); PropertyInfo[] props = t.GetProperties(); foreach (var p in props) { if (p.Name.ToUpper() == propriedade.ToUpper()) { p.SetValue(controle, valor, null); } } } }