View Full Version : bloquear campos


motunning
12-06-2008, 18:01
boas a todos!!

estou a fazer um projecto de gestao de uma clinica de saude, mas preciso de um pequeno favor!!
preciso que ao seleccionar "Sim" ou "Não" na respectiva ComboBox, o programa, caso eu selecciona-se "Sim" bloqueava uma TextBox!
alguem pode ajudar?
agradecia!!!

desde ja agradeço

Cumprimentos

Motunning

bikefire
12-06-2008, 18:30
linguagem ???????????????????????

motunning
12-06-2008, 23:35
Visual Basic 6.0!!

jpaulino
12-06-2008, 23:49
Text1.Enabled = False

motunning
13-06-2008, 12:44
Text1.Enabled = False

isso eu sei que bloqueia o campo!!
so que eu quero isso mas ao clicar no Sim da comboBox!

Eu ja fiz com um Select case

Select case
case 0
combobox.listindex = "Sim"
text1.enabled = false
case 1
combobox.listindex = "Não"
text1.enabled = true
end select

so que assim so me deixa escolher o sim!!

Kayvlim
14-06-2008, 05:05
Em Combobox_Click, experimenta pôr algo deste género:
Text1.Enabled = (Combobox.Text = "Nao")

Não está testado, mas é algo assim.

motunning
14-06-2008, 23:33
Em Combobox_Click, experimenta pôr algo deste género:
Text1.Enabled = (Combobox.Text = "Nao")

Não está testado, mas é algo assim.


vou testar e depois digo algo!!

Cumprimentos

Kayvlim
15-06-2008, 00:54
O teu Select Case está um pouco mal construído :P

Para estar funcional, seria algo assim:

Select case combobox.text
case "Sim"
text1.enabled = false
case "Não"
text1.enabled = true
end select


E não te esqueças de olhar para o til do "Não". O meu código não o tinha, por isso pode não resultar. Para teres a certeza, tenta o Sim:
Text1.Enabled = NOT (Combobox.Text = "Sim")

Andre_Sabino
15-06-2008, 01:24
Olá.

Tentei resolver o problema em C#, pois não estou à vontade com VB. Converti o código e testei. Faz o que eu entendi ser necessário.
Espero que ajude.

(1) - Introduzir a comboBox1 e a textBox1 (em modo visual);
(2) - No mesmo modo visual, seleccionar a comboBox1, ir ao Painel "Properties", escolher "Events" e associar ao evento "SelectedIndexChanged" o método "ChangeOnComboBox", definido no código seguinte.


####### C# ########## (Form1.cs, com textBox1 e comboBox1)



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

//Definir o estado default
this.SetDefault();
}

/// <summary>
/// Colocar o estado por default para os vários componentes.
/// </summary>
public void SetDefault(){

//Inicializar as opções
List<string> options = new List<string>();
options.Add("Não");
options.Add("Sim");

//Definir comboBox1.datasource
this.comboBox1.DataSource = options;

//Definir o estado default da textBox1
this.textBox1.Enabled = true;
}

/// <summary>
/// O que fazer em caso de alguma alteração ao estado da comboBox1.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ChangeOnComboBox(object sender, EventArgs e) {
if ((((string)comboBox1.SelectedItem).Equals("Sim")))
this.textBox1.Enabled = false;
else
this.textBox1.Enabled = true;
}

}
}


####### VB ########## (Form1.vb, com textBox1 e comboBox1)



Public Class Form1

Public Sub New()
InitializeComponent()

'Definir o estado default
Me.SetDefault()
End Sub
Public Sub SetDefault()

''' <summary>
''' Colocar o estado por default para os vários componentes.
''' </summary>

'Inicializar as opções
Dim options As New List(Of String)()
options.Add("Não")
options.Add("Sim")

'Definir comboBox1.datasource
Me.comboBox1.DataSource = options

'Definir o estado default da textBox1
Me.textBox1.Enabled = True
End Sub

''' <summary>
''' O que fazer em caso de alguma alteração ao estado da comboBox1.
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub ChangeOnComboBox(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox1.SelectedIndexChanged
If (DirectCast(ComboBox1.SelectedItem, String).Equals("Sim")) Then
Me.TextBox1.Enabled = False
Else
Me.TextBox1.Enabled = True
End If
End Sub

End Class

Kayvlim
15-06-2008, 01:26
Epah, não é por mal, mas aquela linha já está em VB6 e já faz o pretendido :x