Я создаю текстовые поля на холсте во время выполнения, поэтому я не могу использовать событие KeyDown
в текстовом поле, которое было нажато.Invalid Cast Exception для System.Windows.Controls.Canvas to System.Windows.Controls.TextBox
Вот мой код:
private void canvas1_KeyDown(object sender, KeyEventArgs e)
{
int line = Convert.ToInt32(((TextBox)sender).Name.Substring(4, 1));
//here pop up exception
int column = Convert.ToInt32(((TextBox)sender).Name.Substring(3, 1));
}
Исключение:
«Не удалось привести объект типа 'System.Windows.Controls.Canvas' к типу«System.Windows.Controls .Текстовое окно'."
Исключение довольно ясно: 'sender' (т. Е. Объект, который запускал событие KeyDown), является' System.Windows.Controls.Canvas', но вы добавили его в 'System.Windows.Controls.TextBox'. – Leri
'sender' имеет тип' System.Windows.Controls.Canvas', но вы пытаетесь использовать 'System.Windows.Controls.TextBox'. Измените приведение на '((Canvas) отправителя) ...'. – Lee