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
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!!
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
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
Epah, não é por mal, mas aquela linha já está em VB6 e já faz o pretendido :x