2016-08-09 6 views
0

私はC#/ Visual Studio 2015アプリケーション開発に比較的新しい、Androidからのものです。私はまた、ユーザーがお互いにファイルを送信することができますチャットアプリケーションを書いています。ファイル転送機能が整っています。受信時にファイルがプリセットされたフォルダにダウンロードされ、そのファイルのファイルパスが受信者のチャットボックスに表示されます。ただし、そのファイルパスは通常のテキストのように表示されます。文字列をファイルパスとして識別し、クリックするとファイルエクスプローラで開く方法は?

上記のファイルパス(および/またはURLは理想的には)クリック可能なハイパーリンクとして表示され、そのファイルを開くようにするにはどうすればよいですか?

どのようなヘルプやリソースが必要ですか?

+0

あなたはどのUIフレームワークを使用しています? WPF、Winforms、別の...? –

+0

私はWinformsを使用していると信じています。 System.Windows.Forms。 – gabe3vino

答えて

1

パスを表示するにLinkLabelオブジェクトを作成した場合、あなたはLinkClickedイベントにコールバックを追加し、ファイルエクスプローラを開くことができます。

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
    { 
     Process.Start("C:/"); 
    } 
+0

現在、ファイルが受信されると、チャットメッセージを保持するテキストボックスに、送信者の識別情報と共に受信ファイルファイルのパスを.AppendTextします。 .AppendTextではなく、あなたが記述するこのリンクラベルオブジェクトを作成する方法を知っていますか?さらに、linkLabel1_LinkClickedというタイトルを指定すると、以下に概説したイベントへのコールバックは、リンクラベルの単一のインスタンスに対してのみ機能するようです。しかし、私は複数のファイルを送受信できるので、潜在的に多数のファイルパスを処理できる必要があります。 – gabe3vino

+0

テキストを追加するために使用しているコントロールの種類は何ですか? System.Windows.Forms.TextBoxまたはSystem.Windows.Forms.RichTextBox? –

+0

オブジェクトはTextBoxです。私が最近学んだことは、このタイプのディスプレイには適していないことと、URLの検出+クリックで開くことはほとんどないということです。私は、リンクラベルオブジェクトを使用するあなたの元のソリューションは、私がここ数日で読んだことを考えると、最も正しいと思います。私のTextBocをURL検出を提供するRichTextboxに変換するのは最初は簡単かもしれません。他のコードを引き継ぐことは激しいです! – gabe3vino

0

ここで行く:

あなたがウリのクラスを使用する必要があります文字列からURLを構築するために:

string filePath = "C:\\example.txt"; 
Uri uri = new Uri(filePath); 
return uri.AbsoluteUri; 

はそれがお役に立てば幸いです。)

+0

私はこれがOPが求めるものではないことを肯定しています。 –