Вероятно, вам следует использовать concatMap
для второго запроса Ajax в псевдокоде:
export const deleteSettingsEpic = action$ => action$.pipe(
ofType('DELETE_SETTINGSDATA'),
switchMap(action$ => ajax.ajaxDelete(...)),
concatMap(result => ajax.get(...))
),
);
В событии ControlAdded формы добавьте обработчик MouseClick к управлению с Адресом события щелчка формы. Я не протестировал это, но это могло бы работать.
Private Sub Example_ControlAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles Me.ControlAdded
AddHandler e.Control.MouseClick, AddressOf Example_MouseClick
End Sub
Private Sub Example_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
MessageBox.Show("Click")
End Sub
Можно сцепить события всего управления, если Вы любите и затем контролируете тот путь. Я предполагаю, что существует некоторый API Win32 воображения uber способ захватить их всех, но это вне меня в данный момент.
public Form1()
{
InitializeComponent();
HookEvents();
}
private void HookEvents() {
foreach (Control ctl in this.Controls) {
ctl.MouseClick += new MouseEventHandler(Form1_MouseClick);
}
}
void Form1_MouseClick(object sender, MouseEventArgs e)
{
LogEvent(sender, "MouseClick");
}
// and then this just logs to a multiline textbox you have somwhere on the form
private void LogEvent(object sender, string msg) {
this.textBox1.Text = string.Format("{0} {1} ({2}) \n {3}",
DateTime.Now.TimeOfDay.ToString(),
msg,
sender.GetType().Name,
textBox1.Text
);
}
Вывод - что-то вроде этого, показывая все события и кто "повысил" их:
14:51:42.3381985 MouseClick (Form1)
14:51:40.6194485 MouseClick (RichTextBox)
14:51:40.0100735 MouseClick (TextBox)
14:51:39.6194485 MouseClick (Form1)
14:51:39.2131985 MouseClick (RichTextBox)
14:51:38.8694485 MouseClick (Button)
HTH.
Единственным путем мне когда-либо удавалось сделать, это должно обработать [c] Щелчок [/c] событие каждого управления. Я не полагаю, что событие генерируется, прежде чем управление обрабатывает его.
В WPF, там "туннелируют" события предварительного просмотра, которые обеспечивают эту функциональность, но это действительно не помогает Вам в WinForms.
Ловля щелчка по открытому пространству на форме легка, но получить щелчок это находится на самом деле на управлении, Вам будет нужно сотрудничество того управления для отправки его в форму.
Одна возможность состоит в том, чтобы поместить прозрачное управление всей формой, и принять щелчки на это, соглашение с ними, и затем передать их на надлежащее управление внизу.
Это - общий шаблон в разработке, ее названный шаблон The Observer. Существует много примеров Шаблонов "наблюдатель", и c# здесь является 1 примером http://msdn.microsoft.com/en-us/library/ms954621.aspx, но имейте хороший Google вокруг.