0

コードをより適切に整理する関数を作成したかったのですが、これは頭痛の種です。私の問題は、パブリック関数を使用して、フォームから呼び出すたびに label.Text を変更したいということですが、機能していません。どうすればこれを機能させることができますか。非常に基本的なことをお願いします。ありがとうございました。

これが私のコードです:

namespace NoSleepHD
{
    public partial class NoSleepHD : Form
    {
        public NoSleepHD()
        {
            InitializeComponent();
        }

        public void selectFolder(string driveLabel, string writePath)
        {
            FolderBrowserDialog Tree = new FolderBrowserDialog();
            Tree.RootFolder = Environment.SpecialFolder.MyComputer;
            Tree.ShowNewFolderButton = false;
            Tree.Description = "Please Select any Drive OR Folder on Your External hard Drive";
            Tree.ShowDialog();
            if (Tree.SelectedPath.Length != 0)
            {
                driveLabel = Tree.SelectedPath.ToString();
                Properties.Settings.Default.WritePath01 = driveLabel.ToString();
                Properties.Settings.Default.Save();
            }
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            selectFolder(Label11.Text, Properties.Settings.Default.WritePath01);
        }

ただし、Label11.Text にはテキストが表示されません。親切な人が私を助けてくれませんか。ありがとうございました。

4

2 に答える 2

2

もちろん、そうではありませんLabel11.Text。関数に文字列を渡しています。オブジェクトのみを渡し、Label11そのテキストを selectFolder 関数に設定します。

于 2013-05-18T22:49:06.503 に答える
0

Ok。フォルダーの場所にリンクされている 10 個のラベルがある場合は、この方法を使用することをお勧めします (クリック ハンドラーは送信者を使用しているため、このハンドラーをすべてのラベル ボタンに使用でき、個別のハンドラーは必要ありません)。

public void selectFolder(Label label, string writePath)
    {
        FolderBrowserDialog Tree = new FolderBrowserDialog();
        Tree.RootFolder = Environment.SpecialFolder.MyComputer;
        Tree.ShowNewFolderButton = false;
        Tree.Description = "Please Select any Drive OR Folder on Your External hard Drive";
        Tree.ShowDialog();
        if (Tree.SelectedPath.Length != 0)
        {
            label.Text = Tree.SelectedPath.ToString();
            Properties.Settings.Default.WritePath01 = label.Text;
            Properties.Settings.Default.Save();
        }
    }

    private void FolderSelector_Click(object sender, EventArgs e)
    {
        selectFolder(sender as Label, Properties.Settings.Default.WritePath01);
    }
于 2013-05-18T23:52:45.360 に答える