IF em uma TabPage relação a outra TabPage

12/09/2014

0

Em um windowsform com um tabcontrol que tem quatro tabpages, preciso ao abrir o form(que abre sempre na tabpage1), determinar o botão excluir Como enabled=true(O BtnExcluir fica no tabpage1.), se o textboxcapa do tabpage4 estiver vazio, se não false, é possível ?

No Load do form alguma coisa parecido com isto :

if (Tabcontrol.tabpage4.capaTextBox.Text == "")
            {
                 BtnExcluir.Enabled = true;
            }
            else
            {
                BtnExcluir.Enabled = false;
            }
        }

Jair Souza

Jair Souza

Responder

Posts

02/10/2014

Jair Souza

Desculpa, entendi que com o nome "Código Livro" que está na imagem, poderia acessar no pastebin...aqui consegui.

PasteBin
Responder

02/10/2014

Joel Rodrigues

Qual é o objetivo de desabilitar o botão com base no texto do TextBox? A ideia é saber se o Fill retornou algum registro?
Se for, você pode fazer assim, que é até mais correto:
if (this.bDBibliotecaDataSet.Livro.Rows.Count > 0)
{
   BtnExcluir.Enabled = true.
}


Ou seja, se tem um registro aberto, você poderá excluir.
Responder

03/10/2014

Jair Souza

É um cadastro de livro, no tabpage1 tem todos os dados do livro, no tabpage4 tem um picturebox com a imagem da capa deste livro e no mesmo tabpage4 tem o capatextbox mostrando o local onde a imagem está salva...a idéia é que não possa excluir o registro sem antes excluir a imagem da capa.
Por isto esta parte do código no load do form :
if (capaTextBox.Text != "")
{
    BtnExcluir.Enabled =false;
}
else
{
    BtnExcluir.Enabled = true;
}
        }
Responder

03/10/2014

Joel Rodrigues

Ao invés de verificar o texto do TextBox, tente verificar o valor contido na coluna equivalente a esse campo diretamente na tabela. Por exemplo:
this.bDBibliotecaDataSet.Livro.Rows[0]["Capa"].ToString() != ""
Responder

05/10/2014

Jair Souza

No load, funcionou,
mas quando passo para o segundo registro, mesmo tendo capa ele hablita o BtnExcluir...a questão é,
porque está identificando o capatextbox como vazio enquanto não se vai até o tabpage4 ??

Depois que se vai até o tabpage4, tudo funciona certo....
Responder

07/10/2014

Joel Rodrigues

Você usou a mesma verificação no evento CurrentChanged do DataSource?
Responder

08/10/2014

Jair Souza

Sim, mas infelizmente não funcionou.
Responder

10/10/2014

Jair Souza

Assim está funcionando perfeitamente, mas gostaria muito de deixar correto e lógico, até para meu aprendizado...mas até agora não sei como...por tudo que verifiquei até agora, ao que parece, o motivo é o tabpage4 não carrega os dados do banco no Load do form, carrega somente quando se acessa o próprio tabpage4...que coisa maluca...

private void FrmLivro_Load(object sender, EventArgs e)
        {
            tabControl1.SelectedTab = tabPage4;
            tabControl1.SelectedTab = tabPage1;

            if (capaTextBox.Text != "")
            {
                BtnExcluir.Enabled = false;
            }
            else
            {
                BtnExcluir.Enabled = true;
            }
	  }
Responder

10/10/2014

Joel Rodrigues

Tem algum código no evento SelectedPageChanged?
Responder

10/10/2014

Jair Souza

Somente No Selected Index Change, mas nada que justificasse o que está acontecendo... :

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
            if ((livmc == false) && (tabControl1.SelectedTab == tabPage1))
            {
	            BtnCadastrar.Visible = true;
            }
            else
            {
	            BtnCadastrar.Visible = false;
            }
                lblNomeLivro.Text = tituloTextBox.Text;
                lblNomeLivro.Font = new Font("Microsoft Sans Serif", 9.5F, FontStyle.Underline);
                lblNomeLivro.BorderStyle = System.Windows.Forms.BorderStyle.None;

            if (capaTextBox.Text != "")
            {
                pictureBox2.ImageLocation = capaTextBox.Text;
                BtnAdCapa.Enabled=false;
                BtnExCapa.Enabled = true;
            }
            else
            {
                pictureBox2.ImageLocation = Application.StartupPath.ToString() + "\\CapasLivros\\" + "SemCapa.png";
                BtnAdCapa.Enabled = true;
                BtnExCapa.Enabled = false;
            }
        }
Responder

14/10/2014

Jair Souza

Nenhuma nova idéia ?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar