[英]Event not being fired in C# code
我的VB項目中有一個帶有按鈕的表單。 點擊按鈕,執行如下功能
Private Sub FrmAddMaterial_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Enter
If LstMaterials.SelectedIndex > -1 Then
UpdateMaterialScreen(Me, LstMaterials.SelectedIndex, ErrorFlag)
Else
UpdateMaterialScreen(Me, 0, ErrorFlag)
End If
End Sub
我將整個代碼轉換為C#,並將按鈕綁定到同一事件,如下所示。
Private Sub ButNewEditSoftMaterials_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButNewEditSoftMaterials.Click
MaterialFrm = New FrmAddMaterial
MaterialFrm.Show()
End Sub
FrmAddMaterial
是正在加載的表單,並且具有如下所示的事件。
private void FrmAddMaterial_Enter(object sender, System.EventArgs e)
{
if (LstMaterials.SelectedIndex > -1) {
ModSoftOutput.UpdateMaterialScreen(this, LstMaterials.SelectedIndex,ref ErrorFlag);
} else {
ModSoftOutput.UpdateMaterialScreen(this, 0,ref ErrorFlag);
}
}
代碼FrmAddMaterial_Enter
不在C#
中觸發,但在VB
中觸發。我檢查了FrmAddMaterial
屬性,可以看到Enter
事件已綁定。 不能讓我的FrmAddMaterial_Enter
在C#中FrmAddMaterial_Enter
的問題可能是什么?
在C#中, Click Event
觸發了單擊,因此您必須將方法/偵聽器綁定到該事件。
MSDN狀態:單擊按鈕時發生: https : //msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.button.click(v= vs.110) .aspx
Enter Event
控件時(例如,使用Tab切換時)會發生Enter Event
MSDN參考: https : //msdn.microsoft.com/zh-cn/library/system.windows.forms.control.enter(v=vs.110).aspx
嘗試將您的偵聽器重新分配給Click Event
,該Click Event
應該起作用,或者至少在您單擊按鈕時被觸發。
從輸入事件的MSDN文檔中:
回車和離開事件由Form類抑制。 Form類中的等效事件是Activated和Deactivate事件。
因此,它們將不使用表單,而只能使用控件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.