質問

vb.net(Windowsフォーム)で小さなチャットアプリケーションを実行しているため、チャットボックスの設計に問題があります。テキストメッセージを選択可能にして、ユーザーがコピー(ctrl + v)できるようにしますが、メッセージの送信者を表示するユーザー名はできません。これを達成するためにどのフォームコントロールを使用する必要がありますか。また、それからどのプロパティを変更する必要がありますか?ありがとうございました。また、ユーザー名とそのメッセージを正しく揃える必要があることに注意してください。

役に立ちましたか?

解決

ctrl + cをキャッチし、選択したテキストのユーザー名を解析して削除します

(標準のテキストコピーペーストを妨げるようなユーザー名画像を作成できる場合があります)

他のヒント

DataGridView コントロールを使用することを考えましたか?

ユーザー名とメッセージ用に別々の列を作成し、メッセージ列からのコピーのみを許可できます。

DataGridViewコントロールは最近非常に強力であり、必要に応じて外観をカスタマイズできます(たとえば、グリッド線を非表示にしてテキストボックスのように見せます)。

あちこちにヒントやヒントがありますが、このページは、グリッド線の色を変更する方法を示しています。

まあ、これはかなりクールなアイデアですが、あなたの要件については、それがあなたのために働くかどうかを知るのに十分な知識がありません。まず、チャットアプリケーションを使用している場合は、メッセージをクリックしてクリップボードにコピーしたいと考えています。結局のところ、メッセージをクリックする必要がある他のことは考えられません。そのため、メッセージの上にカーソルを置くとメッセージが強調表示され、クリックするとメッセージがコピーされるようになると便利です。

それがあなたの状況でうまくいくなら、問題はそれを達成する方法です。ラベルを使用してメッセージを送信したユーザー名を表示し、読み取り専用のテキストボックスを使用してメッセージ自体を表示できると考えています。新しいメッセージがチャットに追加されるたびに、新しいラベルと新しいテキストボックスを挿入します(これらのコントロールをページのコントロールコレクションに追加することにより)。おそらくラベルとテキストボックスをdivでラップする必要があります。そうすると、div全体を強調表示できます。

では、クリックしてメッセージのテキストをクリップボードにコピーするにはどうすればよいですか? JavaScriptが必要です。 JavaScriptライブラリを使用している場合は、それが提供するものを参照してください。そうでない場合、ここにいくつかのリンクがあります。 Javascriptコードは、テキストボックスの内容のみを取得する必要があります。これは、正しいCSSクラスまたは正しいIDを検索することで実行できます。次に、これらのリンクの説明に従って、そのテキストをクリップボードにコピーします。

クリップボードにコピーするためのJavascript

クリップボードにコピーするためのJavascriptに関する2番目のリンク

クリップボードにコピーするためのJavascriptに関する3番目のリンク

クリップボードにコピーするためのJavascriptに関する4番目のリンク

ところで、多くのメッセージのテキストをユーザーが選択できるようにする必要があるかもしれません。その場合、おそらく「選択」メッセージをクリックしてください。それに加えて、倍数を選択できます。次に、「選択したすべてのメッセージをコピー」ボタンがあります。これが処理しない唯一のことは、メッセージのテキストの一部を選択することです。そのため、ニーズに合っている場合とそうでない場合があります。

2つのテキストボックスを選択し、2人の異なるユーザーのユーザー名とパスワードを検証し、リストボックスを使用してメッセージを表示することにより、コードでソケット接続を開いてユーザー間でチャットします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top