У меня есть приложение WinForms, где я делаю перетаскивание между двумя TreeViews.
В какой-то момент я хочу отклонить действие в базовой бизнес-реализации, поэтому я выбрасываю исключение. Я вижу исключение в окне «Вывод», но проблема в том, что я не вижу его в пользовательском интерфейсе, и он не вылетает.
Куда делось исключение?
Вот код, описывающий проблему:
private TreeView tvLeft;
private TreeView tvRight;
private Dictionary<string, int> dico = new Dictionary<string, int>();
void tvLeft_DragDrop(object sender, DragEventArgs e) {
if (e.Data.GetDataPresent(typeof(TreeNode))) {
var tnSource = (TreeNode) e.Data.GetData(typeof(TreeNode));
var tnDestination = tvLeft.GetNodeAt(tvLeft.PointToClient(new Point(e.X, e.Y)));
// if I drag-drop the same node twice, there sould be an Exception
// since the key is already in the dictionary...
// ...but I get no Exception in the UI, the Application.ThreadException
// or Appomain.CurrentDomain.UnhandledException handlers
dico.Add(tnSource.Name, (new Random()).Next());
}
}