2012-01-16 2 views
2

이 코드 일반 버튼으로 잘 작동하지만 devexpress의 버튼을 사용하면 약간의 오류가 발생합니다. 그것은 보낸 전자가 선언되지 않은 것을 말한다 ..devexpress에서 코드를 통해 버튼을 트리거하는 방법은 무엇입니까?

Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean 
    Select Case keyData 
     Case Keys.Enter 
       btnPayment_Click(sender, e) 
     Case Keys.F2 

     Case Keys.F5 


     Case Keys.F6 


     Case Keys.Escape 
      Me.Close() 

     Case Else 
      Return MyBase.ProcessCmdKey(msg, keyData) 
    End Select 

    Return True 
End Function 

답변

2

, 나는 우리가 PerformClick. 그게 너에게 효과가 있니? 전의. btnPayment.PerfformClick()

+0

고마워요. 작동합니다. –

1

당신은 선언되지 않은 그 두 변수 (보낸 사람, e)를 전달하여 btnPayment_Click 핸들러를 호출하는 것을 시도하고있다. 더 나은 구조 수도

btnPayment_Click(null, null) 

: 예 - 당신은 단지 btnPayment_Click의 코드가 실행하고 를 보낸 사람이 매개 변수 또는 e 매개 변수에 의존하지 않는하려면

다음 당신은 여전히 ​​뭔가를 전달해야 이 같은 수 :

protected void btnTest_Click(object sender, EventArgs e) 
{ 
    SomeSub(); 
} 

protected void SomeOtherFunctionThatNeedsToCallTheCode() 
{ 
    SomeSub(); 
} 

protected void SomeSub() 
{ 
    // ... 
} 

참조 : VB 2010 년 C#: calling a button event handler method without actually clicking the button

관련 문제