【发布时间】:2019-12-13 11:18:22
【问题描述】:
我正在使用 Windows 应用程序从 VB 迁移到 C#;我正在使用数字角色指纹扫描仪来捕获工作正常的员工指纹,但我无法在 C# 中获取 OnEnroll 事件 - 这是我在 VB 上所做的。
这是我的 VB 代码
Private allReaderSerial As String = "00000000-0000-0000-0000-000000000000"
Private WithEvents enrollControl As DPFP.Gui.Enrollment.EnrollmentControl
Private Sub CreateDPControl(ByRef control As DPFP.Gui.Enrollment.EnrollmentControl)
Try
control = New DPFP.Gui.Enrollment.EnrollmentControl()
control.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink
control.MaxEnrollFingerCount = 1
control.Name = "enrollControl"
control.Location = New System.Drawing.Point(0, 0)
control.ReaderSerialNumber = "00000000-0000-0000-0000-000000000000"
control.Visible = True
control.Enabled = True
Me.Controls.Add(control)
Catch ex As Exception
MessageBox.Show("exception", MsgTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
End Sub
Private Sub frmBioCapture_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If enrollControl Is Nothing Then
CreateDPControl(enrollControl)
End If
End Sub
Private WithEvents enrollControl As DPFP.Gui.Enrollment.EnrollmentControl
Private Sub enrollControl_OnEnroll(ByVal Control As Object, ByVal FingerMask As Integer, ByVal temp As DPFP.Template, ByRef EventHandlerStatus As DPFP.Gui.EventHandlerStatus) Handles enrollControl.OnEnroll
staffTemplate = temp
Me.Hide()
End Sub
Private Sub enrollControl_OnReaderDisconnect(Control As Object, ReaderSerialNumber As String, Finger As Integer) Handles enrollControl.OnReaderDisconnect
MsgBox("Fingerprint reader is not conneted. Connect fingerprint reader.", vbExclamation, MsgTitle)
Exit Sub
End Sub
上面的代码运行良好,可以使用
获取OnEnroll 事件
Handles enrollControl.OnEnroll
我想在 C# 中实现相同的任务 - 下面是我目前编写的代码:
private string allReaderSerialize = "00000000-0000-0000-0000-000000000000";
private DPFP.Gui.Enrollment.EnrollmentControl enrollControl;
private DPFP.Template template;
public FrmCapture()
{
InitializeComponent();
}
private void CreateDPControl(DPFP.Gui.Enrollment.EnrollmentControl control)
{
try
{
control = new DPFP.Gui.Enrollment.EnrollmentControl
{
AutoSizeMode = AutoSizeMode.GrowAndShrink,
MaxEnrollFingerCount = 2,
Name = "enrollControl",
BackgroundImage = Properties.Resources.FormBackground,
BackgroundImageLayout = ImageLayout.Stretch,
Location = new Point(0, 0),
ReaderSerialNumber = "00000000-0000-0000-0000-000000000000",
Visible = true,
Enabled = true
};
this.Controls.Add(control);
}
catch (Exception)
{
throw;
}
}
private void FrmCapture_Load(object sender, EventArgs e)
{
this.Location = new Point(400, 180);
if (enrollControl == null)
{
CreateDPControl(enrollControl);
}
}
private void EnrolControl_OnReaderDisconnected(object control, string ReaderSerialNumber, int finger)
{
MessageBox.Show("Fingerprint reader is not connected. Connect fingerprint reader.");
return;
}
private void EnrollControl_OnEnroll(object control, int fingerMask, DPFP.Template temp, DPFP.Gui.EventHandlerStatus eventHandlerStatus)
{
template = temp;
}
使用 done 捕获正在工作,但我无法获得 OnEnroll 事件(“捕获完成”)。
提前致谢。
【问题讨论】: