0

我的程序使用 spread farpoint 作为第 3 方控件,它有一个 TextBox 控件和一个用于显示数据的 Spread 控件。当用户更改展开中的活动单元格时,我想验证 TextBox 不能为空。如果 TextBox 为空,必须取消 EnterCell 事件,并且 TextBox 必须获得焦点,并且展开的活动单元格也不能改变。我被困在这里。

目前我在 LeaveCell 事件中执行了验证,但它不起作用。EnterCell 事件触发并传播仍然改变了活动单元格:(

If TextBox1.Text = String.Empty Then
  MsgBox ("TextBox1 cannot blank")
  TextBox1.Select()
  'TextBox1.Focus() 'I have tried this function but still not working
End If

请支持我!谢谢大家。

4

1 回答 1

1

据我所知,我们无法“取消” EnterCell 事件。但是,我发现我们可以做一些小技巧来实现它。

Private Sub spread_LeaveCell(sender as Object, e as LeaveCellEventArgs) Handles sprSheet.LeaveCell
  If TextBox1.Text = String.Empty Then
    MsgBox ("TextBox1 cannot blank")
    'This is the trick
    e.NewColumn = e.Column
    e.NewRow = e.Row
    Exit Sub
  End If
  'Other leave cell proceses..
End Sub

...

Private Sub spread_EnterCell(sender as Object, e as EnterCellEventArgs) Handles sprSheet.EnterCell
  If TextBox1.Text = String.Empty Then
    TextBox1.Select()
  End If
Exit Sub
于 2020-03-19T16:49:19.080 回答