Array
(
)

Problemas com herança de formulário (C# VS 2008 SP)

Rafael Prado
   - 03 mai 2010

Boa Tarde

Crieu um formulário base para meu projeto e alterei as propriedades modifiers de seu componente para public, porém quando crio um formulário herdado do meu formulário base não consigo ter acesso aos componentes.

Alguém tem uma solução ??

Grato

Melantonio
|
MVP
Pontos: 300
    04 mai 2010

Rafael, eu fiz um teste aqui e funcionou normal, criei um form1 que herda do form, depois criei o form2 que herda do form1.

Adicionei um textbox no form1 e coloquei a propriedade Modifiers desse textbox como Public.

Agora é só acessar esse textbox do segundo formulário.

até +

0
|
0

Rafael Prado
   - 04 mai 2010

  Falha minha faltou o complemento da pergunta   Então até ai tudo bem, agora tenta incluir um gridview e um toolstrip.   E tenta acessa-los no form que herdou o formulario base.   Eu não estou conseguindo  e não tenho a menor idéia do que pode ser !!      

0
|
0

Melantonio
|
MVP
Pontos: 300
    04 mai 2010

Rafael, tbm consegui visualizar outros componentes.

Voce colocou assim: Form2 : Form1

Pois se voce deixar assim: Form2 : Form não vai funcionar.

o que vc pretende fazer ?

0
|
0

Rafael Prado
   - 04 mai 2010

Veja na figura abaixo:   Este formulario herda o formulario base, repare que no componente toolStrip a propriedade Modifiers esta public, sendo assim no formulario filho teoricamente eu poderia ter acesso ao componente não é isso ??? porém veja quem todas as propriedade do componente estão desabilitadas e tem o cadiadinho no canto superior esquerdo do componente.    

public partial class Form1 : FrmBaseVisao

{

public Form1() ...

}

 

0
|
0

Melantonio
|
MVP
Pontos: 300
    04 mai 2010

Pelo que eu percebi, não da para alterar as propriedades pelo Design, mas se vc for pelo cs vc consegue.

Tenta fazer isso.

0
|
0

Rafael Prado
   - 04 mai 2010

No caso não seria nem questão de alterar a propriedade do toolstrip e sim eu quero implementa o evento click dos botões do toolstrip.   mas não consigo acessar o botão.    

0
|
0

Melantonio
|
MVP
Pontos: 300
    04 mai 2010

Entendi,

tenta ver o que vc precisa e pensa em outra forma.

0
|
0

Rafael Prado
   - 04 mai 2010

A idéia é a seguinte:

Quero criar um formulario base com um grid e um toolstrip neste tenho um propriedade chamada tabela que da um select e retorna no grid, esse formulario base esta pronto, porém agora pra fazer a menutenção do registro ou incluir um novo, no caso o botão novo tenho que abrir um formulario associado a tabela .. exemplo Form3 no caso.   entao no botao novo eu teria  

Form3 f = new Form3();

f.ShowDialog();

Porém Form3 tem q ser dinâmico .. pois posso fazer a chamada para o Form3 ou Form4 dependendo da tabela.

eu pensei em criar um propriedade do tipo Form assim eu passaria o nome do formulario de manutencao e faço a chamada dele no evento do botao novo e editar exemplo:

public Form _form { get; set; }

public void AbreForm()

{

_form f = new _form();

f.ShowDialog();

}

Mas não aceita .. Não sei se tem uma outra forma de resolver isso, porque esse esquema da herança do componente me pegou de calça curta !!    

0
|
0

Melantonio
|
MVP
Pontos: 300
    04 mai 2010

Acho que entendi o que voce quer.

Voce tem um form que tem um Grid, e nesse form um propdriedade que guarda qual tabela vai utilizar.

Atraves de um botão vc quer chamar o form que faz alguma coisa para a tabela que estava na propriedade do Form anteriror.

è isso?

Se for isso, não vejo a necessidade de herdar Formulários, acho que da para vc tratar isso no form que tem a Grid. Como vc tem um form para casa ação, vc trava no Formulário pai e chama o Form3, Form5 dependendo da situação.

Cria outra propriedade e armazena o nome do form que for utilizar, aí vc usar assim:

Form frm = Activator.CreateInstance(Type.GetType("WindowsFormsApplication1" + this.formName)) as Form;

Depois só usar o frm.

Ve se ajudou.

0
|
0