문제

vb.net (Windows Form)에서 작은 채팅 애플리케이션을 수행 할 때 채팅 박스의 디자인에 문제가 있습니다. 사용자가 (ctrl+v) 복사 할 수 있도록 문자 메시지를 선택할 수 있으려면 메시지를 보낸 사용자 이름이 아닙니다. 이것을 달성하기 위해 어떤 형태의 컨트롤을 사용해야하고 어떤 속성을 변경 해야하는가? 고맙습니다. 또한 사용자 이름을 명심하고 메시지를 올바르게 정렬해야합니다.

도움이 되었습니까?

해결책

Ctrl+C를 잡고 사용자 이름을 위해 선택한 텍스트를 구문 분석하고 삭제하십시오.

(아마도 표준 텍스트 복사 페이스트를 방지하는 사용자 이름 이미지를 만들 수 있습니다)

다른 팁

사용에 대해 생각해 보셨습니까? DatagridView 제어?

사용자 이름과 메시지에 대한 별도의 열을 가질 수 있으며 메시지 열에서만 복사 할 수 있습니다.

DataGridView 컨트롤은 요즘 매우 강력하며 원하는대로 외관을 사용자 정의 할 수 있습니다 (예 : 텍스트 상자처럼 보이도록 그리드 라인을 숨기고 있습니다).

모든 곳에 팁과 힌트가 있지만 이 페이지 그리드 라인 색상을 변경하는 방법을 보여줍니다.

글쎄, 여기에 꽤 멋진 아이디어가 있지만, 그것이 당신에게 효과가 있는지 아닌지 알기위한 당신의 요구 사항에 대해 충분히 알지 못합니다. 채팅 애플리케이션을 사용하고 있다면 메시지를 클릭하여 클립 보드에 복사하고 싶습니다. 결국, 나는 메시지를 클릭해야 할 다른 것을 생각할 수 없습니다. 따라서 메시지 위에 호버링되어 강조 표시되고 클릭하면 복사가 발생하면 좋습니다.

그것이 당신의 상황에 효과가 있다면, 질문은 그것을 달성하는 방법입니다. 나는 당신이 라벨을 사용하여 메시지를 보낸 사용자 이름과 메시지 자체를 보여주기 위해 Readonly TextBox를 보여줄 수 있다고 생각합니다. 새 메시지가 채팅에 추가 될 때마다 새 레이블과 새 텍스트 상자를 삽입합니다 (이 컨트롤을 페이지의 컨트롤 모음에 추가하여). 아마도 레이블과 텍스트 상자를 div에 래핑해야하므로 호버링 할 때 전체 DIV를 강조 할 수 있습니다.

이제 메시지의 텍스트가 클립 보드에 복사되는 원인을 클릭하면 어떻게해야합니까? JavaScript가 필요합니다. JavaScript 라이브러리를 사용하는 경우 제공하는 내용을 확인하십시오. 그렇지 않다면 여기에 몇 가지 링크가 있습니다. JavaScript 코드는 텍스트 상자의 내용 만 가져와야하며, 올바른 CSS 클래스 또는 올바른 ID를 찾아서 수행 할 수 있습니다. 그런 다음이 링크에 설명 된대로 해당 텍스트를 클립 보드에 복사하십시오.

클립 보드에 복사하기위한 JavaScript

클립 보드에 복사하기위한 JavaScript에 관한 두 번째 링크

클립 보드에 복사하기위한 JavaScript에 관한 세 번째 링크

클립 보드에 복사하기위한 JavaScript에 대한 4 번째 링크

그건 그렇고, 사용자가 많은 메시지의 텍스트를 선택할 수 있어야 할 필요가있을 수 있습니다. 이 경우 메시지를 클릭하면 "선택"을 클릭하면 배수를 선택할 수 있습니다. 그런 다음 "선택한 모든 메시지를 복사"하는 버튼이 있습니다. 이것이 처리하지 않는 유일한 것은 메시지 텍스트의 일부를 선택하는 것입니다. 따라서 귀하의 요구에 맞을 수도 있고 아닐 수도 있습니다.

두 개의 텍스트 상자를 선택하고 두 명의 다른 사용자에 대한 사용자 이름과 비밀번호를 검증하고 메시지를 볼 수있는 목록 상자를 사용하여 코드에서 사용자 간 채팅을 위해 소켓 연결을 엽니 다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top