Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как запретить копи-пасте в RichTextBoxe? / 13 сообщений из 13, страница 1 из 1
29.06.2004, 11:49
    #32580668
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
Есть объект унаследованный от RichTextBox, нужно запретить ему операцию вставки текста. Не получается. Я пытаюсь перехватить комбинацию клавиш, но вот что потом писать - как-то не доходит. Вот код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
protected override bool ProcessCmdKey (ref Message msg, Keys keyData)
{
	
if(keyData == (Keys)Shortcut.CtrlV || keyData == (Keys)Shortcut.ShiftIns)
{	
		
 // что здесь делать?		
}

return base.ProcessCmdKey(ref msg, keyData);
			

} 

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
29.06.2004, 11:59
    #32580712
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
что здесь делать?

Код: plaintext
1.
return true;

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
29.06.2004, 12:15
    #32580775
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
Да, с труе работает.
А вот так уже нет.
У моего объекта есть булево св-во myParam и в зависимости от его значения мне нужно то запрещать, то разрешать вставку.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
protected override bool ProcessCmdKey (ref Message msg, Keys keyData)
{
	
if(keyData == (Keys)Shortcut.CtrlV || keyData == (Keys)Shortcut.ShiftIns)
{	
    if (this.myParam==false)
    {
      // делаю что мне надо
      return true;
    }
    else
    {
             // пытаюсь ничего не делать, т.е. ничего не вставлять
	return true;
    }
			
}
					
	return base.ProcessCmdKey(ref msg, keyData);
			
			
			
} 

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
29.06.2004, 12:24
    #32580808
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
То есть вам надо когда:

Код: plaintext
1.
2.
3.
4.
if  (this.myParam == true)
{
  //разрешать вставку?
} 


Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
29.06.2004, 12:31
    #32580829
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
Наоборот, если this.myParam==false то разрешить вставку, иначе - запретить и ничего не вставлять.

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
29.06.2004, 12:38
    #32580860
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
Наоборот, если this.myParam==false то разрешить вставку, иначе - запретить и ничего не вставлять.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
protected override bool ProcessCmdKey (ref Message msg, Keys keyData)
{
	if(keyData == (Keys)Shortcut.CtrlV || keyData == (Keys)Shortcut.ShiftIns)
	{
	    if (this.myParam==false)
	    {
			// делаю что мне надо
			//return true;  тогда ремим здесь  edit by Sa
	    }
	    else
	    {
			// пытаюсь ничего не делать, т.е. ничего не вставлять
			return true;
	    }

	}

	return base.ProcessCmdKey(ref msg, keyData);
} 

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
29.06.2004, 12:45
    #32580906
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
Всё равно вставляет гад!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
protected override bool ProcessCmdKey (ref Message msg, Keys keyData)
{
if(keyData == (Keys)Shortcut.CtrlV || keyData == (Keys)Shortcut.ShiftIns)
	{
	    if (this.myParam==false)
	    {
		this.Paste();// вставляю текст в объект
	    }
	    else
	    {
		// пытаюсь ничего не делать, т.е. ничего не вставлять
		return true;
	    }

	}

	return base.ProcessCmdKey(ref msg, keyData);
} 



Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
29.06.2004, 13:16
    #32581013
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
Что то я понять не могу.

Когда this.myParam==false и далее this.Paste() вы ругаетесь что он вставляет?

Может тогда поменять this.myParam==false, на this.myParam==true - и это будет соответствовать вашей логики?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
29.06.2004, 13:52
    #32581161
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
Поверьте разницы нет.
Я "на лету" создаю объекты и определяю им св-ва.
так вот текст вставляется и там где св-во=true и там где=false
так что с логикой всё в порядке, мне наплевать где текст будет вставляться, лишь бы в одом из созданных объектов.

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
29.06.2004, 14:50
    #32581344
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
Вечерком посмотрю (GMT + 5:00), было бы хорошо еще если бы вы тестовый пример-проект, прикрепили к своему сообщению.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
29.06.2004, 16:19
    #32581633
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
Вечерком (GMT + 1:00) попробую примерчик сварганить.
(GMT + 5:00), не земляки случайно? Новосибирск?

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
29.06.2004, 21:08
    #32582154
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
не земляки случайно? Новосибирск?

нет Екатеринбург

Ну все работает нормально, вот мой класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
public class MyRichTextBox:System.Windows.Forms.RichTextBox
{
	private bool m_allowPaste = false; // true - вставка разрешена
	
	public MyRichTextBox(bool allowPaste)
	{
		this.m_allowPaste = allowPaste;
	}

	protected override bool ProcessCmdKey (ref Message msg, Keys keyData)
	{
		
		if(keyData == (Keys)Shortcut.CtrlV || keyData == (Keys)Shortcut.ShiftIns)
		{
			if (!this.m_allowPaste)
			{
				// дизеблим вставку
				return true;
			}
			else
			{
				// а здесь недизеблим
			}
		}
		return base.ProcessCmdKey(ref msg, keyData);
	} 

}

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
30.06.2004, 11:33
    #32582799
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить копи-пасте в RichTextBoxe?
Спасибо большое, у меня тоже всё получилось, правда я так и не понял в чём было дело :)

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как запретить копи-пасте в RichTextBoxe? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]