1

私はビジュアルC#にまったく慣れていません。コンソールアプリを管理することはできますが、フォームのコーディングに関しては簡単に迷子になります。

私は現在、テキストファイルを1行ずつ読み取る「アプリランチャー」を作成しています。各行は、私のPCのどこかにある便利なプログラムへのパスです。リンクラベルは、テキストファイルの各パス(つまり、各行)に対して自動的に作成されます。

リンクラベルの.Textプロパティをパスの省略形(つまり、パス全体ではなくファイル名のみ)にしたいと思います。私はこの方法で文字列を短くする方法を見つけました(これまでのところとても良いです!)

ただし、フルパスをどこかに保存したいと思います。これは、リンクラベルがリンクする必要があるものだからです。Javascriptでは、次のようにこのプロパティをlinklabelに追加することができます。mylinklabel.fullpath= line; (ここで、lineはテキストファイルを読んだときの現在の行であり、fullpathはリンクラベルに追加したい「カスタム」プロパティです。宣言する必要があると思いますが、方法がわかりません。

以下は、フォームを作成し、テキストファイルを1行ずつ読み取り、各行にあるパスのリンクラベルを作成するコードの一部です。

private void Form1_Load(object sender, EventArgs e)   //on form load
    {
        //System.Console.WriteLine("hello!");
        int counter = 0;
        string line;
        string filenameNoExtension;
        string myfile = @"c:\\users\jim\desktop\file.txt";

        //string filenameNoExtension = Path.GetFileNameWithoutExtension(myfile);


        // Read the file and display it line by line.
        System.IO.StreamReader file = new System.IO.StreamReader(myfile);
        while ((line = file.ReadLine()) != null)
        {
            //MessageBox.Show(line);   //check whats on each line


            LinkLabel mylinklabel = new LinkLabel(); 
            filenameNoExtension = Path.GetFileNameWithoutExtension(line);  //shortens the path to just the file name without extension
            mylinklabel.Text = filenameNoExtension;
            //string fullpath=line;        //doesn't work
            //mylinklabel.fullpath=line;   //doesn't work
            mylinklabel.Text = filenameNoExtension;  //displays the shortened path
            this.Controls.Add(mylinklabel);
            mylinklabel.Location = new Point(0, 30 + counter * 30);
            mylinklabel.AutoSize = true;
            mylinklabel.VisitedLinkColor = System.Drawing.Color.White;
            mylinklabel.LinkColor = System.Drawing.Color.White;



            mylinklabel.Click += new System.EventHandler(LinkClick);


            counter++;
        }

        file.Close();

    }

では、後でonclick関数で使用するために、リンクラベル内にフルパスを文字列として保存するにはどうすればよいですか?

よろしくお願いします

ジム

4

3 に答える 3

5

プロパティを使用すると、 ()の最初のパラメータを:Tagにキャストすることで取得できます。LinkClickobject senderLinkLabel

mylinklabel.Tag = line;

LinkClick

((LinkLabel)sender).Tag
于 2011-05-09T20:07:18.307 に答える
0

テキストファイルからの読み取りはあまり良くありません。xml ファイルから読み取ることができれば、リンクラベルやその他のものを作成するのは非常に簡単です。xml サンプル:

<Programs>
<Program Name="Calculator" Path="calc">
<Program Name="Notepad" Path="C:\blabla">
</Programs>

次に、名前変数とパス変数を作成し、ファイルから値をロードできます。ただし、初心者の場合は txt ファイルでもかまいませんが、ファイルから各行の値を読み込むのは面倒です。

于 2011-05-09T22:00:28.313 に答える
0

プロパティにフルパスをLinkLabel Tag保存すると、次のようにフルパスを取得できます

string full path = myLinkLabel.Tag.ToString();

この助けを願っています。

于 2011-05-09T20:17:43.583 に答える