많은 RichTextBox를 사용하는 C# winForms 응용 프로그램에서 작업하고 있습니다. 이미지를 복사하여 RichTextBox에 붙여 넣으면 이미지가 게시된다는 것을 알았습니다. RichTextBox에 이미지를 붙여 넣지 않도록하는 방법이 있습니까? 즉, 키보드 문자 만 허용합니다.서식있는 텍스트 상자에서 이미지 방지
답변
나는 내 질문에 대답 할 수있었습니다. 여기 누군가가 다른 사람을 찾고있는 경우입니다.
private void InputExpressionRchTxt_KeyDown(object sender, KeyEventArgs e)
{
bool ctrlV = e.Modifiers == Keys.Control && e.KeyCode == Keys.V;
bool shiftIns = e.Modifiers == Keys.Shift && e.KeyCode == Keys.Insert;
if (ctrlV || shiftIns)
if (Clipboard.ContainsImage())
e.Handled = true;
}
위의 대답의 문제는 혼합 된 콘텐츠가있는 경우에는 작동하지 않는다는 것입니다. 예를 들어 스프레드 시트에서 몇 행을 강조 표시하고 리치 텍스트 상자에 붙여 넣으면 원본 텍스트 이외의 다른 텍스트로 끝납니다. 나는 더 나은 솔루션은 다음과 생각 :
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.V)
{
if (Clipboard.GetData("Text") != null)
Clipboard.SetText((string)Clipboard.GetData("Text"), TextDataFormat.Text);
else
e.Handled = true;
}
}
편집 : 방법은 아래 MrCC 공유하고 내 위의 방법보다 더 직접적인/더 나은 방법입니다했다.
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.V)
{
if (Clipboard.ContainsText())
richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Text));
e.Handled = true;
}
}
동의. 예를 들어 Onenote에서 텍스트를 복사하면 클립 보드에 텍스트와 해당 텍스트를 나타내는 비트 맵 이미지가 채워집니다. 어떤 이유에서 CTRL-V는 항상 비트 맵 표현을 삽입 했으므로 CTRL-V를 가로채는 것이 필요합니다. 위의 코드는 약간의 로터리 (loopabout)입니다. 클립 보드가 있으면 순수 텍스트 형식으로 덮어 씁니다. 내부 처리기가 실제로 붙여 넣기를 수행 할 수있게합니다 (따라서 if 분기에서 e.Handled = true;는 사용하지 마십시오). 더 직접적 일 것입니다 :'(Clipboard.ContainsText()) richTextBox1.Paste (DataFormats.GetFormat (DataFormats.Text));'그리고'e.Handled = true; '를 어느 브랜치에 설정합니다. – MrCC
정말 옳은 소식입니다. 너의 방법이 더 좋다. 틀림없이 내가 내 솔루션을 게시했을 때 클립 보드를 교체하지 않고도 문제가 해결 될 수 있다고 생각했지만 정확한 방법을 파악할 수는 없었습니다. 방법을 공유해 주셔서 감사합니다. 나는 당신의 것을 포함하기 위해 위의 나의 대답을 편집했다. –
QWERTY 키보드에서만 작동하는 것처럼 보입니다. 마우스와 컨텍스트 메뉴 또는 다른 키보드가 있다면 어떻게 작동합니까? 붙여 넣기를 감지하는 더 높은 수준 또는 더 추상적 인 방법이 있습니까? –
- 1. vb.net의 서식있는 텍스트 상자에서 텍스트 확인
- 2. 서식있는 텍스트 상자에서 배열 출력 정렬
- 3. 서식있는 텍스트 상자에서 현재 줄 찾기
- 4. ASP.NET 서식있는 텍스트 상자에서 오류가 발생합니다.
- 5. 서식있는 텍스트 상자에서 여러 항목 바꾸기
- 6. 서식있는 텍스트 상자에서 텍스트 부분의 강조 색을 변경하는 방법은 무엇입니까?
- 7. Django 관리자의 서식있는 텍스트 편집기로 이미지 업로드
- 8. 에이전트의 서식있는 텍스트 항목에 인라인 이미지 만들기
- 9. 이미지 업로드 옵션이있는 서식있는 텍스트 편집기
- 10. 서식있는 텍스트 상자 저장 파일
- 11. 자바 스크립트를 사용하여 서식있는 텍스트 상자에서 지정된 줄로 스크롤하는 방법
- 12. 서식있는 텍스트 상자에서 단일 줄을 단일 간격으로 표시하는 방법
- 13. 서식있는 텍스트 상자에서 이미지와 글 머리표로 단어 파일을 여는 방법
- 14. 서식있는 텍스트 상자에서 상황에 맞는 메뉴를 만드는 방법
- 15. 서식있는 텍스트 상자에서 단어 문서에 텍스트를 삽입하는 방법
- 16. WPF 서식있는 텍스트 상자 내용
- 17. 서식있는 텍스트 상자 컨트롤에서 이미지 주위에 텍스트 줄 바꿈
- 18. 서식있는 텍스트 편집을위한 텍스트 영역
- 19. 서식있는 텍스트 편집기
- 20. 서식있는 텍스트 대 XSS
- 21. 텍스트보기의 서식있는 텍스트
- 22. UITextView 서식있는 텍스트?
- 23. HTML 서식있는 텍스트 상자
- 24. 개찰구 서식있는 텍스트 편집기
- 25. 서식있는 텍스트 상자에 쓰기.
- 26. MVC3의 서식있는 텍스트 영역
- 27. 서식있는 텍스트 .... CKeditor
- 28. 서식있는 텍스트 편집기 색칠
- 29. localizable.strings에 서식있는 텍스트 추가
- 30. 서식있는 텍스트 IDE
나는 당신이 붙여되었을 수있는 이미지를 제거하여 RichTextBox의 내용이 변경된 것을 인식하고 RTF 내용에 몇 가지 조작을 수행한다 할 수있는 최선 생각한다. –
을 내가 알고 수있는 방법이 이미지인가요? – Emo
RTF 형식은 '태그'를 정의합니다. RTF를 몇 가지 수단 (예 : 정규식)을 사용하여 구문 분석하고 이미지와 관련된 태그를 제거해야합니다. –