0
當我們按下TAB鍵時,我們將焦點更改爲給定Tab鍵順序中的下一個控件。在我的情況下,當我點擊一個複選框(比如X)時,然後按Tab鍵後控件進入一個文本字段,而不是進入下一個複選框(比如Y)按下。我希望控件移動到複選框Y.謝謝。如何攔截TAB鍵按下以關注在TAB鍵被按下後啓用的複選框?
我有下面的代碼,但是當我按下標籤按鈕未運行:
if (((e.KeyCode == Keys.Tab && !e.Shift) || e.KeyCode == Keys.Enter) && _resultsGrid.ActiveCell != null)
{
if (_resultsGrid.ActiveCell.IsInEditMode && (_resultsGrid.ActiveCell == lastEditableCell || e.KeyCode == Keys.Enter))
{
DateTime tempDateTime = DateTime.Today;
if (!(_resultsGrid.ActiveCell.Column.DataType.ToString() == "System.DateTime" && !System.DateTime.TryParse(_resultsGrid.ActiveCell.Text, out tempDateTime)))
{
if (_resultsGrid.ActiveCell.Text == "" && (_resultsGrid.ActiveCell.Column.DataType == typeof(System.Int16) ||
_resultsGrid.ActiveCell.Column.DataType == typeof(System.Int32) ||
_resultsGrid.ActiveCell.Column.DataType == typeof(System.Int64) ||
_resultsGrid.ActiveCell.Column.DataType == typeof(System.Decimal)))
_resultsGrid.ActiveCell.Value = 0;
else
_resultsGrid.ActiveCell.Value = _resultsGrid.ActiveCell.Text;
}
_returnKeyClickedToSaveRow = true;
FireSaveEvent();
if (!_saveFailed)
{
if (e.KeyCode == Keys.Tab)
{
_checklastkey = true;
_resultsGrid.PerformAction(UltraGridAction.CommitRow);
}
else
{
_resultsGrid.PerformAction(UltraGridAction.CommitRow);
_resultsGrid.PerformAction(UltraGridAction.DeactivateCell);
}
}
_returnKeyClickedToSaveRow = false;
this._entityDS.AcceptChanges(); //EAMNET-9811
}
}
更改複選框Y的選項卡順序來X後?只要它被禁用,它將被跳過。 – GolezTrol
這聽起來像你使用錯誤的事件來決定啓用複選框Y - 如果複選框X啓用複選框Y,它可能應該在它的檢查事件中執行它 - 聽起來像你在做某事就像一個模糊/離開事件,此時要移動到的下一個控件已經被確定。 –