Отмена события EnterCell распространения Farpoint
Моя программа использует дальнюю точку распространения в качестве стороннего элемента управления, у нее есть элемент управления TextBox и элемент управления Spread для отображения данных. Когда пользователь перемещает активную ячейку в разворот, я хочу проверить, что TextBox не должен быть пустым. Если TextBox пуст, событие EnterCell должно иметь значение Cancel, и 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
Пожалуйста, поддержите меня! Спасибо всем.
1 ответ
Насколько мне известно, мы ничего не можем сделать, чтобы "отменить" событие EnterCell. Однако я обнаружил, что мы можем сделать небольшой трюк, чтобы добиться этого.
Private Sub spread_LeaveCell(sender as Object, e as LeaveCellEventArgs) Handles spread.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