Hej Du kan t.ex använda "Enter" och "Leave" händelserna för TextBoxarna. Hej Jan! Borde bli något åt detta håll: Ursäkta för det där med C#, jag missade att det var i VB.Net forumet du ställde frågan men hoppas det löser sig med Thomas översättning Konvertera lätt med : http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx Hej Enklast att få med alla textboxar är nog att göra så här, förutsatt antt du använder Visual Studio. HejVeta vilken TextBox som är aktiv
I mitt formulär har ett antal Texboxar(30 st) som skall innehålla liknande värde.
Jag undrar om man kan göra en händelse så att jag får reda på textboxens namnegenskap eller vilken textbox som användaren har klickat.
MVH / Stefan HSv: Veta vilken TextBox som är aktiv
Enklast är det nog om du först skapar dessa två metoder
<code>
private void textBox_Enter(object sender, EventArgs e)
{
}
private void textBox_Leave(object sender, EventArgs e)
{
}
</code>
Sen kan du markera alla dina textboxar, öppna Properties och välj ikonen Events och där finns "Enter och Leave" under gruppen Focus och där väljer du respektive metod enligt ovan.
Ett litet exempel med 3 TextBoxar i ett formulär.
<code>
using System;
using System.Windows.Forms;
using System.Diagnostics;
namespace WindowsApplication1
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
this.textBox1.Leave += new System.EventHandler(this.textBox_Leave);
this.textBox1.Enter += new System.EventHandler(this.textBox_Enter);
this.textBox2.Leave += new System.EventHandler(this.textBox_Leave);
this.textBox2.Enter += new System.EventHandler(this.textBox_Enter);
this.textBox3.Leave += new System.EventHandler(this.textBox_Leave);
this.textBox3.Enter += new System.EventHandler(this.textBox_Enter);
}
private void textBox_Enter(object sender, EventArgs e)
{
try
{
TextBox aTextBox = (TextBox)sender;
Debug.WriteLine(String.Format("Enter textbox {0} som innehåller texten \"{1}\" ", aTextBox.Name, aTextBox.Text));
}
catch (Exception ex)
{
Debug.WriteLine(String.Format("Error: {0}.", ex.Message));
}
}
private void textBox_Leave(object sender, EventArgs e)
{
try
{
TextBox aTextBox = (TextBox)sender;
Debug.WriteLine(String.Format("Lämnar textbox {0} som innehåller texten \"{1}\"", aTextBox.Name, aTextBox.Text));
}
catch (Exception ex)
{
Debug.WriteLine(String.Format("Error: {0}.", ex.Message));
}
}
}
}
</code>Sv:Veta vilken TextBox som är aktiv
Jag tackar för ditt inlägg.
Nu använder jag Vb.Net, så jag undrar om det går att konventera koden du skrivit.
MVH/ Stefan HSv: Veta vilken TextBox som är aktiv
Imports System
Imports System.Windows.Forms
Imports System.Diagnostics
Namespace WindowsApplication1
Public Partial Class Form3
Inherits Form
Public Sub New()
InitializeComponent()
AddHandler Me.textBox1.Leave, AddressOf textBox_Leave
AddHandler Me.textBox1.Enter, AddressOf textBox_Enter
AddHandler Me.textBox2.Leave, AddressOf textBox_Leave
AddHandler Me.textBox2.Enter, AddressOf textBox_Enter
AddHandler Me.textBox3.Leave, AddressOf textBox_Leave
AddHandler Me.textBox3.Enter, AddressOf textBox_Enter
End Sub
Private Sub textBox_Enter(ByVal sender As Object, ByVal e As EventArgs)
Try
Dim aTextBox As TextBox = DirectCast(sender, TextBox)
Debug.WriteLine([String].Format("Enter textbox {0} som innehåller texten ""{1}"" ", aTextBox.Name, aTextBox.Text))
Catch ex As Exception
Debug.WriteLine([String].Format("Error: {0}.", ex.Message))
End Try
End Sub
Private Sub textBox_Leave(ByVal sender As Object, ByVal e As EventArgs)
Try
Dim aTextBox As TextBox = DirectCast(sender, TextBox)
Debug.WriteLine([String].Format("Lämnar textbox {0} som innehåller texten ""{1}""", aTextBox.Name, aTextBox.Text))
Catch ex As Exception
Debug.WriteLine([String].Format("Error: {0}.", ex.Message))
End Try
End Sub
End Class
End Namespace
Lycka till!
Mvh,
Thomas
Sv: Veta vilken TextBox som är aktiv
Sv:Veta vilken TextBox som är aktiv
Sv:Veta vilken TextBox som är aktiv
Tack för alla svar
Jag har bara en fråga. Måsta man lägga till alla textboxarna i subben New()
Med koden "AddHandler Me.textBox1.Leave, AddressOf textBox_Leave"
Vad jag förstår så funkar det med en addhandler på en textbox, så funkar dom andra Texboxarna oxå.
Eller är det fel att göra så ?
Än en gån tack för hjälpen.
MVH/ Sefan HSv: Veta vilken TextBox som är aktiv
1. Skapa dina metoder enligt nedan
<code>
Private Sub textBox_Leave(ByVal sender As Object, ByVal e As EventArgs)
{
//Koden kan du komplettera med senare
}
Private Sub textBox_Enter(ByVal sender As Object, ByVal e As EventArgs)
{
//Koden kan du komplettera med senare
}
<code>
2.Öppna ditt formulär
3.Öppna properties (F4)
4.Markera alla aktuella textboxar i ditt formulär
5.Klicka på Events-ikonen (Blixten) i properites
6.I properties/Events expandera gruppen Focus
7.Öppna dropdown för Enter och välj metoden textBox_Enter
8.Nu ska alla dina textboxars Enter-event kopplats till metoden textBox_Enter
Sv:Veta vilken TextBox som är aktiv
Nu har jag fått det att funka.
Jag tackar än en gång alla för svaren
/Stefan H