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

好的。如果您有 10 个链接到文件夹位置的标签,最好这样做(注意 Click 处理程序正在使用发送器,因此您可以将此处理程序用于所有标签按钮,无需单独的处理程序)。

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 回答