Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 Как отловить нажатие "Отменить" в контекстном меню?  [new]
mikka sikorsky
Member

Откуда:
Сообщений: 92
Приветствую.
Есть винформа, на ней два текстбокса.
При внесении текста в первый, затем во второй и смене фокуса на первый, нажатии в контекстном меню первого текстбокса "Отменить" пропадает текст во втором текстбоксе.
Как :
- выключить меню "Оменить" в контекстном меню текстбокса?
- отменять действие в том текстбоксе, над которым выбрано контекстное меню?
- предотвратить отмену?
Гуглил, собственное меню городить - не подходит.
Спасибо за конструктивные ответы. Желательно с кодом для теста. Спасибо.
17 сен 21, 11:10    [22372873]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить нажатие "Отменить" в контекстном меню?  [new]
mikka sikorsky
Member

Откуда:
Сообщений: 92
В итоге, сам решаю свои проблемы.
Мной было решено оставить меню "Отмена", только нашёл способ корректной обработки события.
Если кому-то пригодится найденное мной решение - буду рад.
Мне пришлось воспользоваться элементами <textarea>, т.к. ASPxMemo, например, не хотел цеплять событие.
Да, проблема ещё и в том, что программа должна работать в последних версиях браузеров. Это важно.

<script type="text/javascript">
	// Firefox, Google Chrome, Opera, Safari, Internet Explorer from version 9
	function OnInput (event) {
		//alert ("The new content: " + event.target.value);
		UpdateSaveButton(event);
	}
	// Internet Explorer
	function OnPropChanged (event) {
		if (event.propertyName.toLowerCase () == "value") {
			//alert ("The new content: " + event.srcElement.value);
		UpdateSaveButton(event);
		}
	}
	function UpdateSaveButton(event) {
		var bIsFilled = false;
		bIsFilled = document.getElementById("tbTest").value.length > 0 && document.getElementById("tbTestQuestion").value.length > 0 && document.getElementById("tbTestAnswer").value.length > 0;
		document.getElementById("btnSaveTest").disabled = !bIsFilled;
	}
</script>


И код HTML:

<textarea id="tbTest" runat="server" oninput="OnInput (event)" class="mframe" onpropertychange="OnPropChanged (event)"/>
<textarea id="tbTestQuestion" runat="server" oninput="OnInput (event)" class="mframe" onpropertychange="OnPropChanged (event)"/>
<textarea id="tbTestAnswer" runat="server" oninput="OnInput (event)" class="mframe" onpropertychange="OnPropChanged (event)"/>
<asp:Button id="btnSaveTest" runat="server" Text="Button" Enabled="false"/>
21 сен 21, 11:52    [22374050]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить нажатие "Отменить" в контекстном меню?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22584
mikka sikorsky
Есть винформа
mikka sikorsky
И код HTML:
mikka sikorsky
В итоге, сам решаю свои проблемы.
21 сен 21, 13:40    [22374128]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить нажатие "Отменить" в контекстном меню?  [new]
mikka sikorsky
Member

Откуда:
Сообщений: 92
Shocker.Pro,

извиняюсь, ошибочка вышла.
Конечно же, web-форма.
Спасибо за указание.

Сообщение было отредактировано: 21 сен 21, 18:10
21 сен 21, 18:20    [22374306]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить