2

サーバーに保持され、パイプ文字で区切られた長いリスト文字列から 1 つの文字列行を単純に選択しようとしています。この文字列は php スクリプトによって取得され、文字列の行は、サーバー上にあるすべてのメディアとフォルダーのリストです。

私のコードでは、この情報を取得し、次のコードで返しています。

 using (var client = new WebClient())
 {
     result = client.DownloadString("http://server.foo.com/images/getDirectoryList.php");
 }

  textBox1.Text = string.Join(Environment.NewLine, result.Split('|'));

次のようになります。

しかし、それらのいずれかをクリックしようとすると、カーソルがクリックした場所に移動するだけです。このように、md-harrier.jpg を選択しようとすると、カーソルが jpg の末尾に移動してしまいます。

私が本当に欲しいものは下の写真です。Koala.jpg をクリックすると、全体が強調表示され、クリックした名前を保存することができます。そのスクリーン ショットを取得するには、Koala.jpg の横をクリックして、マウスをドラッグする必要がありました。

達成したいことを達成できる方法はありますか?

これについて注意すべき重要なことは、サーバー上にいくつのファイルが存在するか、それらが何と呼ばれるかはわからないということです。私のphpスクリプトはこの情報を取得し、上記のコードを使用してwinformテキストボックスに表示しています。

4

2 に答える 2

0

TextBox を使用する理由がないと言ったように、ListBox を使用することで、この方法でそれを実現できます。

using (var client = new WebClient())
{
 result = client.DownloadString("http://bender.holovis.com/images/getDirectoryList.php");
}
string[] names=result.Split('|');
foreach(string name in names)
{
if(name!="|"&&name!=" ")
{
  listbox.Items.Add(name);
}
}

さらに、選択したアイテムを変数にListBox's SelectionChangedEvent保存する場合は、この方法で選択インデックスをサブスクライブして変数に保存します。

int selection=;

private void ListBox1_SelectionIndexChanged(object sender,EventArgs e)
{
  selection=ListBox1.SelectedIndex;
}
于 2013-09-01T11:23:23.753 に答える