none
Pegar valores de PropertyGrid RRS feed

Respostas

  • Olá Márcio,

    Você pode manter uma variável como tipo referenciado ou capturar o valor do SelectedObject, veja:

    public partial class Form1 : Form
      {
        cls_propriedade prop;
    
        public Form3()
        {
          InitializeComponent();
          prop = new cls_propriedade();
          propertyGrid1.SelectedObject = prop;
        }
    
        private void Form3_Load(object sender, EventArgs e)
        {
          prop.texto1 = "texto1";
          prop.texto2 = "texto2";
        }
    
    
        private void button1_Click(object sender, EventArgs e)
        {
          MessageBox.Show(string.Format("Valor variável escopo de classe:\n\rtexto1={0}\n\rtexto2={1}", prop.texto1, prop.texto2));
    
          cls_propriedade prop2 = (cls_propriedade)propertyGrid1.SelectedObject;
          MessageBox.Show(string.Format("Valor propriedade SelectedObject:\n\rtexto1={0}\n\rtexto2={1}", prop2.texto1, prop2.texto2));
        }
      }
    
      [DefaultPropertyAttribute("text1")]
      public class cls_propriedade
      {
        string _texto1;
        string _texto2;
    
        [CategoryAttribute("Geral"), DescriptionAttribute("Texto 1"), ReadOnlyAttribute(true)]
        public string texto1
        {
          get { return _texto1; }
          set { _texto1 = value; }
        }
    
        [CategoryAttribute("Geral"), DescriptionAttribute("Texto 2"), ReadOnlyAttribute(true)]
        public string texto2
        {
          get { return _texto2; }
          set { _texto2 = value; }
        }
      }
    

     


    []'s, Prentice Mesquita
    • Marcado como Resposta Marcio Dias terça-feira, 18 de janeiro de 2011 21:32
    terça-feira, 11 de janeiro de 2011 11:32

Todas as Respostas

  • Olá Marcio,

    A mesma propriedade (SelectedObject) que atribui o objeto pode capturar o seu valor.
    Mas se esta não é a dúvida então poste o seu código e explique-a melhor para eu poder ajudá-lo.

    []'s


    []'s, Prentice Mesquita
    domingo, 9 de janeiro de 2011 23:00
  • Eu segui os exemplos na internet sobre o assunto.

    Criei uma classe para receber e retornar os valores que eu quero atribuir na grid.

    [DefaultPropertyAttribute("text1")]
    public class cls_propriedade
    {
      string _texto1;
      string _texto2;

      [CategoryAttribute("Geral"), DescriptionAttribute("Texto 1"), ReadOnlyAttribute(true)]
      public string texto1
      {
       get { return _texto1; }
            set { _texto1 = value; }
      }

      [CategoryAttribute("Geral"), DescriptionAttribute("Texto 2"), ReadOnlyAttribute(true)]
      public string texto2
      {
       get { return _texto2; }
            set { _texto2 = value; }
      }
    }

    E atribuo os valores assim:

    cls_propriedade prop = new cls_propriedade();
    prop.texto1 = "texto1";
    prop.texto2 = "texto2";

    É mais ou menos isso, mas em um determinado momento, por exemplo, eu preciso pegar o valor do 'Texto2' no grid
    de propriedade. Eu até consegui pergar um determinado valor somente quando altero um item, mas eu
    preciso também pegar um valor sem ter que altarar o grid, isso, para executar dados no banco de dados.


    mefdias
    segunda-feira, 10 de janeiro de 2011 13:09
  • Olá Márcio,

    Você pode manter uma variável como tipo referenciado ou capturar o valor do SelectedObject, veja:

    public partial class Form1 : Form
      {
        cls_propriedade prop;
    
        public Form3()
        {
          InitializeComponent();
          prop = new cls_propriedade();
          propertyGrid1.SelectedObject = prop;
        }
    
        private void Form3_Load(object sender, EventArgs e)
        {
          prop.texto1 = "texto1";
          prop.texto2 = "texto2";
        }
    
    
        private void button1_Click(object sender, EventArgs e)
        {
          MessageBox.Show(string.Format("Valor variável escopo de classe:\n\rtexto1={0}\n\rtexto2={1}", prop.texto1, prop.texto2));
    
          cls_propriedade prop2 = (cls_propriedade)propertyGrid1.SelectedObject;
          MessageBox.Show(string.Format("Valor propriedade SelectedObject:\n\rtexto1={0}\n\rtexto2={1}", prop2.texto1, prop2.texto2));
        }
      }
    
      [DefaultPropertyAttribute("text1")]
      public class cls_propriedade
      {
        string _texto1;
        string _texto2;
    
        [CategoryAttribute("Geral"), DescriptionAttribute("Texto 1"), ReadOnlyAttribute(true)]
        public string texto1
        {
          get { return _texto1; }
          set { _texto1 = value; }
        }
    
        [CategoryAttribute("Geral"), DescriptionAttribute("Texto 2"), ReadOnlyAttribute(true)]
        public string texto2
        {
          get { return _texto2; }
          set { _texto2 = value; }
        }
      }
    

     


    []'s, Prentice Mesquita
    • Marcado como Resposta Marcio Dias terça-feira, 18 de janeiro de 2011 21:32
    terça-feira, 11 de janeiro de 2011 11:32
  • Muito obrigado, serviu perfeitamente.

    Agora vou cadastrar outra pergunta sobre o assunto, que é como adicionar aqueles combos com valores personalidados por mim.


    mefdias
    terça-feira, 18 de janeiro de 2011 21:32