Ну наверное я что то неправильн делаю значит... В общем у меня выставлено событие на клик по узлу. В нём находится достаточно объёмный код. Но есть один случай когда мне нужно выполнить все те же действия без участия пользователя. Если быть точнее то мне нужно вызвать событие клика, когда я вызываю определённое событие из контекстного меню определённого узла. Делаю я пока следующим образом (но думаю что это не самый оптимальный путь)
| Код | //Поле для хранения координат узла, по которому было совершено нажатие правой клавишей private Point currentNodeLocation;
private void FrmTVFileStructure_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { //выполняем действия }
private void FrmTVFileStructure_MouseDown(object sender, MouseEventArgs e) { //Получаем координаты узла, по которому кликнули if (e.Button == MouseButtons.Right) { this.FrmTVFileStructure.SelectedNode = this.FrmTVFileStructure.GetNodeAt(e.Location); } this.currentNodeLocation = e.Location; }
//Вызов события из контекстного меню определённого узла private void FrmTSMICheck_Click(object sender, EventArgs e) { //Вызов события клика this.FrmTVFileStructure_NodeMouseClick(sender, new TreeNodeMouseClickEventArgs(this.FrmTVFileStructure.SelectedNode, MouseButtons.Left, 1, this.currentNodeLocation.X, this.currentNodeLocation.Y)); }
|
В общем вот так вот коряво. Можно как то это оптимизировать? =) |