Результаты поиска
Как клавиатура вниз или вверх между выпадающим "options"?
У меня есть специально построенный динамический выпадающий список на основе ajax [div].
У меня есть поле [input], которое; onkeyup, запускает поиск Ajax, который возвращает результаты в div s и возвращается в использование innerHTML . Эти div s все имеют основные моменты onmouseover так, типичный успешный поиск дает следующую структуру (простите полу-код):
[input]
[div id=results] //this gets overwritten contantly by my AJAX function
[div id=result1 onmouseover=highlight onclick=input.value=result1]
[div id=result2 onmouseover=highlight onclick=input.value=result2]
[div id=result2 onmouseover=highlight onclick=input.value=result2]
[/div]
Это работает.
Однако мне не хватает важных функций за регулярными элементами HTML. Я не могу клавиатуру вниз или вверх между "options".
Я знаю, что javascript обрабатывает события клавиатуры, но; я не смог найти хорошего гида. (Конечно, последующий вопрос будет заключаться в следующем: могу ли я использовать <ENTER> для запуска этого события onclick ?)
Лучший способ захватить ключевые события в NSTextView?
Я медленно изучаю Objective-C и Cocoa, и единственный способ, который я вижу до сих пор, чтобы захватить ключевые события в текстовых представлениях, - это использовать делегирование, но мне трудно найти полезную документацию и примеры того, как реализовать такое решение. Может ли кто-нибудь указать мне правильное направление или оказать помощь из первых рук?
Windows формы потоков и событий - ListBox обновления быстро, но progressbar испытывает огромную задержку
Наша команда создает новую систему документооборота по подбору персонала взамен старой. Мне было поручено перенести старые данные в новую схему. Я решил сделать это, создав небольшой проект Windows Forms, поскольку схема радикально отличается, а прямые скрипты TSQL не являются адекватным решением.
Основной запечатанный класс 'ImportController', выполняющий эту работу, объявляет следующее событие делегата:
public delegate void ImportProgressEventHandler(object sender, ImportProgressEventArgs e);
public static event ImportProgressEventHandler importProgressEvent;
Главное окно запускает статический метод в этом классе, используя новый поток:
Thread dataProcessingThread = new Thread(new ParameterizedThreadStart(ImportController.ImportData));
dataProcessingThread.Name = "Data Importer: Data Processing Thread";
dataProcessingThread.Start(settings);
ImportProgressEvent args содержит строковое сообщение, максимальное значение int для индикатора выполнения и текущее значение progress int. В Windows форма зарегистрировавшегося на мероприятие:
ImportController.importProgressEvent += new ImportController.ImportProgressEventHandler(ImportController_importProgressEvent);
И реагирует на событие таким образом, используя свой собственный делегат:
private delegate void TaskCompletedUIDelegate(string completedTask, int currentProgress, int progressMax);
private void ImportController_importProgressEvent(object sender, ImportProgressEventArgs e)
{
this.Invoke(new TaskCompletedUIDelegate(this.DisplayCompletedTask), e.CompletedTask, e.CurrentProgress, e.ProgressMax);
}
Наконец, индикатор выполнения и listbox обновляются:
private void DisplayCompletedTask(string completedTask, int currentProgress, int progressMax)
{
string[] items = completedTask.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
foreach (string item in items)
{
this.lstTasks.Items.Add(item);
}
if (currentProgress >= 0 && progressMax > 0 && currentProgress <= progressMax)
{
this.ImportProgressBar.Maximum = progressMax;
this.ImportProgressBar.Value = currentProgress;
}
}
Дело в том, что ListBox, похоже, обновляется очень быстро ,но индикатор выполнения никогда не перемещается, пока пакет не будет почти завершен??? а что дает ?
Предотвратить запуск событий TreeView в VB6?
В некотором коде VB6 у меня есть обработчик для события коллапса TreeView:
Private Sub MyTree_Collapse(ByVal Node as MSComCtlLib.Node)
Это вызывается всякий раз, когда узел в дереве сворачивается, будь то пользователем или программно. Как оказалось, через некоторое Окольное выполнение может случиться так, что этот обработчик закончит тем, что скажет узлу свернуться, что приведет к бесконечной рекурсии.
Я могу придумать несколько способов освежевать эту кошку, но мне кажется, что проще всего сказать TreeView не вызывать события в течение некоторого периода времени. Я не могу найти простой звонок, чтобы позволить мне сделать это, хотя. Кто-нибудь успешно сделал это, или мне нужно отслеживать состояние каким-то другим способом, чтобы я мог реагировать соответствующим образом, когда появляются рекурсивные события?
Прослушивание событий в другом приложении
Предположим, что у меня есть два приложения, написанные в C#.. первое-это стороннее приложение, которое вызывает событие под названием "OnEmailSent".
Второе-это пользовательское приложение, которое я написал, что хотел бы каким-то образом подписаться на "OnEmailSent" даже первого приложения.
Есть ли какой-либо способ, которым я мог бы каким-то образом прикрепить второе приложение к экземпляру первого приложения, чтобы прослушать событие "OnEmailSent"?
Поэтому для дальнейшего разъяснения мой конкретный сценарий заключается в том, что у нас есть пользовательское стороннее приложение, написанное на c#, которое вызывает событие "OnEmailSent". Мы можем видеть, что событие существует, используя рефлектор.
То, что мы хотим сделать, - это выполнить некоторые другие действия, когда этот компонент отправляет email.
Самый эффективный способ, который мы можем придумать, - это использовать некоторую форму IPC, как предложил Андерс, и слушать событие OnEmailSent, вызванное сторонним компонентом.
Поскольку компонент написан на языке C#, мы играем с идеей написать другое приложение C#, которое может присоединяться к исполняющему процессу, и когда оно обнаружит, что событие OnEmailSent было вызвано, оно выполнит свой собственный код обработки событий.
Возможно, я что-то упускаю, но из того, что я понимаю о том, как работает удаленное взаимодействие, следует, что должен быть сервер, определяющий какой-то контракт, на который клиент может подписаться.
Я больше думал о сценарии, в котором кто-то написал отдельное приложение, например outlook, которое предоставляет события, на которые я хотел бы подписаться из другого приложения.
Я предполагаю, что сценарий, о котором я думаю, - это отладчик .net и то, как он может присоединяться к исполняемым сборкам для проверки кода во время его выполнения.
Вызов базовых методов при переопределении событий уровня страницы
В моем коде за спиной я связываю свои события вот так:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
btnUpdateUser.Click += btnUpateUserClick;
}
Я сделал это таким образом, потому что это то, что я видел в примерах.
- Нужно ли вызывать метод base.OnInit()?
- Будет ли он неявно называться?
- Лучше ли вызывать его в начале метода или в конце?
- Каков будет пример, когда путаница в базовом методе может привести вас к неприятностям?
Прослушивание событий в другом приложении
Предположим, что у меня есть два приложения, написанные в C#.. первое-это стороннее приложение, которое вызывает событие под названием "OnEmailSent".
Второе-это пользовательское приложение, которое я написал, что хотел бы каким-то образом подписаться на "OnEmailSent" даже первого приложения.
Есть ли какой-либо способ, которым я мог бы каким-то образом прикрепить второе приложение к экземпляру первого приложения, чтобы прослушать событие "OnEmailSent"?
Поэтому для дальнейшего разъяснения мой конкретный сценарий заключается в том, что у нас есть пользовательское стороннее приложение, написанное на c#, которое вызывает событие "OnEmailSent". Мы можем видеть, что событие существует, используя рефлектор.
То, что мы хотим сделать, - это выполнить некоторые другие действия, когда этот компонент отправляет email.
Самый эффективный способ, который мы можем придумать, - это использовать некоторую форму IPC, как предложил Андерс, и слушать событие OnEmailSent, вызванное сторонним компонентом.
Поскольку компонент написан на языке C#, мы играем с идеей написать другое приложение C#, которое может присоединяться к исполняющему процессу, и когда оно обнаружит, что событие OnEmailSent было вызвано, оно выполнит свой собственный код обработки событий.
Возможно, я что-то упускаю, но из того, что я понимаю о том, как работает удаленное взаимодействие, следует, что должен быть сервер, определяющий какой-то контракт, на который клиент может подписаться.
Я больше думал о сценарии, в котором кто-то написал отдельное приложение, например outlook, которое предоставляет события, на которые я хотел бы подписаться из другого приложения.
Я предполагаю, что сценарий, о котором я думаю, - это отладчик .net и то, как он может присоединяться к исполняемым сборкам для проверки кода во время его выполнения.
Самый чистый способ вызова событий перекрестного потока
Я нахожу, что модель событий .NET такова, что я часто вызываю событие в одном потоке и слушаю его в другом потоке. Мне было интересно, какой самый чистый способ маршалировать событие из фонового потока в мой поток UI.
Основываясь на предложениях сообщества, я использовал это:
// earlier in the code
mCoolObject.CoolEvent+=
new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
if (InvokeRequired)
{
CoolObjectEventHandler cb =
new CoolObjectEventHandler(
mCoolObject_CoolEvent);
Invoke(cb, new object[] { sender, args });
return;
}
// do the dirty work of my method here
}
Могу ли я захватить события клавиатуры Windows Mobile PIE?
Кто-нибудь знает способ захвата событий клавиатуры (keyup / keydown) в Portable IE под Window mobile? Я заметил, что ключевые события не поддерживаются в JS, и хотел бы придумать решение, которое работает без каких-либо дополнений на стороне клиента.
Разница между событиями проводки с "новым" и без него"
В чем разница (если она есть) между этими двумя строками кода?
tmrMain.Elapsed += new ElapsedEventHandler(tmrMain_Tick);
и
tmrMain.Elapsed += tmrMain_Tick;
Оба, кажется, работают точно так же. Означает ли C#, что вы имеете в виду первое, когда вводите последнее?
В чем разница между делегатами и мероприятиями?
В чем разница между делегатами и мероприятиями? Разве оба они не содержат ссылок на функции, которые могут быть выполнены?
DoDragDrop и MouseUp
Есть ли простой способ гарантировать, что после того, как drag-and-drop не завершится, событие MouseUp не будет съедено и проигнорировано платформой?
Я нашел сообщение в блоге, описывающее один механизм, но он включает в себя много ручного учета, включая флаги состояния, события MouseMove, ручную проверку "mouse leave" и т. д. все это я предпочел бы не реализовывать, если этого можно избежать.
Как поддерживать правильное событие Javascript после использования cloneNode (true)
У меня есть элемент формы, который содержит несколько строк входных данных. Подумайте о каждой строке как об атрибутах нового объекта, который я хочу создать в своем веб-приложении. Кроме того, я хочу иметь возможность создавать несколько новых объектов в одном посте HTTP. Я использую встроенный метод Javascript cloneNode (true) для клонирования каждой строки. Проблема в том, что каждая входная строка также имеет ссылку удаления, прикрепленную к ее onclick-событию:
// prototype based
<div class="input-line">
<input .../>
<a href="#" onclick="$(this).up().remove();"> Remove </a>
</div>
При нажатии на ссылку удаления клонированной входной линии также удаляются все входные линии, которые были клонированы из того же объекта dom. Можно ли повторно привязать объект "this" к соответствующему тегу привязки после использования cloneNode (true) на указанном выше элементе DOM?