public static Panel Attr_Formulário_Genérico(Panel Panel_Genérico, object Instância_Genérica) { string Tipo_Campo; string Nome_Campo; string Campo_Identity; Campo_Identity = Reflection_BLL.Acha_Campo_Identity(Instância_Genérica.GetType().Name); for (int i = 0; i < Panel_Genérico.Controls.Count; i++) { // Descobre o tipo do controle (label, textbox, button ou qualquer outro) Tipo_Campo = Panel_Genérico.Controls[i].Name.Substring(0, 3); // A partir do nome do controle(ex: grpFREQUENTADORESsexo), essa função vai retornar "sexo", que é a propriedade Nome_Campo = Funções.fncRetornaNomePropriedade(Instância_Genérica.GetType().Name, Panel_Genérico.Controls[i].Name); // Padroniza o nome do campo para ficar igual ao nome da propriedade(ex: De "nome_crachá" Para "Nome_Crachá" Nome_Campo = Funções.fncConverteControle_Classe(Nome_Campo); try { // Permite acessar a propriedade em questão Propriedade_Genérica = Instância_Genérica.GetType().GetProperty(Nome_Campo); switch (Tipo_Campo) { case "txt": Attr_TextBox_Genérico(Panel_Genérico.Controls[i], Instância_Genérica); break; case "cmb": Attr_ComboBox_Genérico(Panel_Genérico.Controls[i], Instância_Genérica); break; case "grp": Attr_GroupBox_Genérico(Panel_Genérico.Controls[i], Instância_Genérica); break; } // Se o campo for identity no banco de dados, o mesmo é desabilitado. if (Nome_Campo == Campo_Identity) { Panel_Genérico.Controls[i].Enabled = false; } } catch (Exception Err) { string teste = Err.Message; } } return(Panel_Genérico); }
public static object IN_Classe_Genérico(Panel Panel_Genérico) // Seta todos os valores de um formulário para uma classe { // Descobre qual é a classe que será utilizada string Nome_Classe = Funções.fncRetornaParteMaiúscula(Panel_Genérico.Controls[0].Name); string Tipo_Campo; string Nome_Campo; // Instancia o objeto classe object Instância_Genérica = Reflection.InstanciaClasse(Nome_Classe); // Percorre todos os controles (labels,textbox, buttons, etc) que pertencem ao formulário for (int i = 0; i < Panel_Genérico.Controls.Count; i++) { // Descobre o tipo do controle (label, textbox, button ou qualquer outro) Tipo_Campo = Panel_Genérico.Controls[i].Name.Substring(0, 3); // A partir do nome do controle(ex: grpFREQUENTADORESsexo), essa função vai retornar "sexo", que é a propriedade Nome_Campo = Funções.fncRetornaNomePropriedade(Nome_Classe, Panel_Genérico.Controls[i].Name); // Converte o nome "sexo" para "Sexo", ou um nome "data_situação"para "Data_Situação. Isso é para que fique igual ao nome da propriedade da classe Nome_Campo = Funções.fncConverteControle_Classe(Nome_Campo); // Permite acessar a propriedade em questão Propriedade_Genérica = Instância_Genérica.GetType().GetProperty(Nome_Campo); // Verifica se o controle em questão, pertence a alguma propriedade da classe if (Propriedade_Genérica != null) { switch (Tipo_Campo) { case "txt": IN_Propriedade_Genérico(Propriedade_Genérica, Panel_Genérico.Controls[i].Text, Instância_Genérica); // Método que insere na propriedade da classe instanciada o valor que está no controle break; case "cmb": IN_Propriedade_ComboBox_Genérico(Propriedade_Genérica, Panel_Genérico.Controls[i], Instância_Genérica); break; case "grp": IN_Propriedade_GroupBox_Genérico(Propriedade_Genérica, Panel_Genérico.Controls[i], Instância_Genérica); break; } } } return(Instância_Genérica); }
public static void Attr_RadioButton_Genérico(Control GroupBox_Genérico, object Instância_Genérica) { string Nome_Controle; RadioButton RadioButton_Genérico; for (int i = 0; i < GroupBox_Genérico.Controls.Count; i++) { Nome_Controle = Funções.fncRetornaNomePropriedade(Instância_Genérica.GetType().Name, GroupBox_Genérico.Controls[i].Name); if (Nome_Controle.ToUpper() == Propriedade_Genérica.GetValue(Instância_Genérica, null).ToString()) { RadioButton_Genérico = (RadioButton)GroupBox_Genérico.Controls[i]; RadioButton_Genérico.Checked = true; } break; } }
private static void IN_Propriedade_RadioButton_Genérico(PropertyInfo Propriedade_Genérica, Control GroupBox_Genérico, object Instância_Genérica) { RadioButton RadioButton_Genérico; string Nome_RadioButton_Genérico; for (int i = 0; i < GroupBox_Genérico.Controls.Count; i++) { RadioButton_Genérico = (RadioButton)GroupBox_Genérico.Controls[i]; if (RadioButton_Genérico.Checked == true) { Nome_RadioButton_Genérico = Funções.fncConverteControle_Classe(RadioButton_Genérico.Name.Substring(3 + Instância_Genérica.GetType().Name.Length, RadioButton_Genérico.Name.Length - 3 - Instância_Genérica.GetType().Name.Length)); // Método que insere na propriedade da classe instanciada o valor que está no controle IN_Propriedade_Genérico(Propriedade_Genérica, Nome_RadioButton_Genérico, Instância_Genérica); // Este comando sai do método break; } } }
public static void Attr_ComboBox_Genérico(Control Controle_Genérico, object Instância_Genérica) { string Nome_Campo; object Item_ComboBox; int Contador = 0; ComboBox ComboBox_Genérico = (ComboBox)Controle_Genérico; // A partir do nome do controle(ex: grpFREQUENTADORESsexo), essa função vai retornar "sexo", que é a propriedade Nome_Campo = Funções.fncRetornaNomePropriedade(Instância_Genérica.GetType().Name, Controle_Genérico.Name); // Padroniza o nome do campo para ficar igual ao nome da propriedade(ex: De "nome_crachá" Para "Nome_Crachá" Nome_Campo = Funções.fncConverteControle_Classe(Nome_Campo); // Instancia o objeto classe Instância_Genérica = Reflection.InstanciaClasse(Nome_Campo); Type Tipo_Genérico = Instância_Genérica.GetType(); // Retorna uma coleção de objetos para preencher a combobox ALDAL.LL_Genérico("*", Nome_Campo); // Lê o primeiro registro do Select ALDAL.Lê_Registro_Genérico(Instância_Genérica); while (Erro.getErro() == false) { // Invoca o método da classe que compõe a string a ser inserida na combobox Item_ComboBox = Tipo_Genérico.InvokeMember("insereRegistro_ComboBox", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, Instância_Genérica, new object[] { }); // Finalmente insere o item na ComboBox ComboBox_Genérico.Items.Insert(Contador, Item_ComboBox); // Lê o próximo registro do Select ALDAL.Lê_Registro_Genérico(Instância_Genérica); Contador++; } }
private void btn_genérico_Click(object sender, EventArgs e) { //Instancia o formulário frmTipos_CadastrosFichaIHM UmFormulário = new frmTipos_CadastrosFichaIHM(); //Retirando as três primeiras letras do nome do formulário, obteremos o nome da classe UmFormulário.Formulário.Nome_classe = this.GetType().Name.Substring(3, this.GetType().Name.Length - 3); //Exemplos: btnTIPOS_CADASTROSincluir, retorna 'I', btnTIPOS_CADASTROSalterar, retorna 'A' e assim por diante UmFormulário.Formulário.Status = Funções.fncRetornaNomePropriedade(UmFormulário.Formulário.Nome_classe, (sender as Button).Name) //O segundo parâmetro manda o nome do botão Exemplo: btnTIPOS_CADASTROSincluir .Substring(0, 1) .ToUpper(); //Armazena o código do registro a ser alterado/consultado ou excluído if (UmFormulário.Formulário.Status != "I") { UmFormulário.Formulário.Código = Int64.Parse(dgvTIPOS_CADASTROS[0, dgvTIPOS_CADASTROS.CurrentCell.RowIndex].Value.ToString()); } //Abre o formulário UmFormulário.Show(); }