실버 라이트 3을 사용하고 있으며 코드 뒤에 작성된 텍스트 상자에서 마우스 클릭으로 연결된 핸들러와 이벤트를 만들고 싶습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있습니까?코드에서 작성된 텍스트 상자에 클릭 이벤트를 추가하는 방법
텍스트 상자를 클릭하면 몇 가지 사항이 실행되도록 설정해야합니다.
vb.net에 예제가 있으면 더 좋을 것입니다. thanks shannon
실버 라이트 3을 사용하고 있으며 코드 뒤에 작성된 텍스트 상자에서 마우스 클릭으로 연결된 핸들러와 이벤트를 만들고 싶습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있습니까?코드에서 작성된 텍스트 상자에 클릭 이벤트를 추가하는 방법
텍스트 상자를 클릭하면 몇 가지 사항이 실행되도록 설정해야합니다.
vb.net에 예제가 있으면 더 좋을 것입니다. thanks shannon
다음 코드는 코드 숨김으로 만든 텍스트 상자에서 마우스 클릭을 시뮬레이션합니다.
TextBox textBox1;
bool mouseDown;
public SilverlightControl1()
{
InitializeComponent();
textBox1 = new TextBox();
textBox1.MouseLeftButtonDown += textBox1_MouseLeftButtonDown;
textBox1.MouseLeftButtonUp += textBox1_MouseLeftButtonUp;
mouseDown = false;
}
void textBox1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (mouseDown)
{
// Do the mouse click here
}
mouseDown = false;
}
void textBox1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
mouseDown = true;
}
당신은 아마도 아래로 마우스와 마우스까지 사이의 시간 미만 500 밀리 초 (말)와 마우스가 픽셀 또는 둘 사이보다 더 이동되지 않았 음을 것을 첨가 검사를 추가 할 수 있습니다 그 사건들.
답장을 보내 주셔서 감사합니다. 위 질문에 답해 드리겠습니다. mouseleftbuttongup/down에 대한 이벤트 처리기를 추가하는 위치가 표시되지 않습니다. 코드 위에 보이는 것에서는 이벤트를 처리 할 수 있지만 화재는 발생하지 않습니다. 아마 나를 도울 수 계속 ... 감사합니다 – jvcoach23
@ jvcoach23 - 나는 스크롤없이 적합하게 코드를 좁게 유지하기 위해'new MouseButtonEventHandler'를 빠뜨린 짧은 형식을 사용했습니다. 코드를 게시 할 때 코드를 테스트하지 않았 음을 인정해야합니다.하지만 지금은 있습니다. 작동하지만 @ AnthonyWJones의 대답에 따라 국경을 클릭 할 때만 작동합니다. – ChrisF
ChrisF .. 더 많은 질문 ... 첫 번째 .. 텍스트 상자가 만들어져 테두리에 자식으로 배치 된 경우 텍스트 상자를 클릭하면 .. 테두리에서 클릭 한 것처럼 선택됩니까? 는 내가 가지고있는 코드는이 TextBox1에 = 새합니다 MyTextBox() TextBox1.AcceptsReturn = 진정한 TextBox1.TextWrapping = TextWrapping.Wrap TextBox1.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden Me.brTyping.Child = TextBox1에 과정과 같이 보입니다 나는 아직도 당신이 좋은 질문을하기 위해 준 작품을 변환하는 C# 코드를 얻지 못했습니다. 그러나 한 번에 한 가지만 생각해 봅니다. – jvcoach23
난 그냥 .. ChrisF 응답에 무언가를 추가하고, 당신이 원하는 그게 무슨 있으면 알려 드릴 것입니다
TextBox textBox1;
public SilverlightControl1()
{
InitializeComponent();
textBox1 = new TextBox();
textBox1.MouseLeftButtonDown += new MouseButtonEventHandler(textBox1_MouseLeftButtonDown);
}
void textBox1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
InvokeEvent(sender, null);
}
public event EventHandler FireEvent;
public void InvokeEvent(object sender, EventArgs e)
{
EventHandler handler = FireEvent;
if (handler != null) handler(sender, e);
}
///// 여기의 vb.net의 코드에 아래의 코드를보십시오 : 국경을 클릭하면
Public Partial Class SilverlightControl1
Inherits UserControl
Private textBox1 As TextBox
Public Sub New()
InitializeComponent()
textBox1 = New TextBox()
AddHandler textBox1.MouseLeftButtonDown, AddressOf textBox1_MouseLeftButtonDown
End Sub
Private Sub textBox1_MouseLeftButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
InvokeEvent(sender, Nothing)
End Sub
Public Event FireEvent As EventHandler
Public Sub InvokeEvent(ByVal sender As Object, ByVal e As EventArgs)
Dim handler As EventHandler = FireEvent
RaiseEvent handler(sender, e)
End Sub
End Class
숟가락으로 먹을 필요가있어서 미안합니다 ... 당신이 제공 한 것을 변환했습니다. vb.net. InvokeEvent에서 Public Event FireEvent (보낸 사람 객체, e As System.EventArgs)가 이벤트이며 직접 호출 할 수 없다는 오류가 발생합니다. 'RaiseEvent'문을 사용하여 이벤트를 발생시킵니다. 그래서 나는 EventHandler와 같은 Public Event FireEvent에 대해 올바르게하지 않았다. 감사합니다 – jvcoach23
안녕하세요 jvcoach23, 그냥 업데이트 된 답변을 확인 .. – Malcolm
는 UIElement
에서 상속 덕분에 마우스 이벤트를 가진 반면 TextBox
만 MouseDown
이벤트가 발생합니다. TextBox
의 텍스트 편집 영역을 클릭하면 마우스 이벤트가 발생하지 않습니다.
가장 가까운 값은 GotFocus
이벤트입니다.
현재 어떤 코드가 있습니까? – ChrisF
응답 패턴을 찾으십시오. –