从类中访问表单元素

时间:2015-06-23 16:21:55

标签: c# winforms

我试图制作这段代码:

        public void _open_Click_1(object sender, EventArgs e)
    {
        _playList.Items.Clear();
        _openFile.Multiselect = true;
        _openFile.Filter = "Mp3 Files|*.mp3|Avi Files|*.avi|Mp4 Files|*.mp4";
        _openFile.ShowDialog();
        doc = _openFile.SafeFileNames;
        path = _openFile.FileNames;
        for (int i = 0; i < doc.Length; i++)
        {
            _playList.Items.Add(doc[i]);
        }
    }

来自一个班级 所以我创建了一个名为mplayer的类 然后是表单的一个实例 并将所有代码放在那里

当我点击一个按钮时,会发生什么 文件对话框打开 所有选定的歌曲名称都会进入列表框 由于某种原因,它不会打开,也不会弹出编译或异常错误 请指教

2 个答案:

答案 0 :(得分:0)

正如我所看到的,事件处理程序已正确分配。顺便试试这段代码,它正在我的项目中工作:

public Form1()
    {
        InitializeComponent();

        _open.Click += new EventHandler(_open_Click_1);
    }

    private void _open_Click_1(object sender, EventArgs e)
    {
        _openFile = new OpenFileDialog();
        _playList.Items.Clear();
        _openFile.Multiselect = true;
        _openFile.Filter = "Mp3 Files|*.mp3|Avi Files|*.avi|Mp4 Files|*.mp4";
        _openFile.ShowDialog();
        var doc = _openFile.SafeFileNames;
        var path = _openFile.FileNames;
        for (int i = 0; i < doc.Length; i++)
        {
            _playList.Items.Add(doc[i]);
        }
    }

注意:我使用局部变量来选择文件名和路径。

答案 1 :(得分:0)

也许我并没有很好地解释自己。我试图打电话给一个这样做的班级。像这样

("AZ",0.5)

("NY",0.5)

("OR",1.0)

}

并在活动部分:

public static class mplayer
{
    public static void openMusic()
    {
        PhoenixDownloader.searchForm frm = new searchForm();
        frm._playlist.items.clear();
        frm._openfile.multiselect = true;
        frm._openfile.filter = "mp3 files|*.mp3|avi files|*.avi|mp4 files|*.mp4";
        frm._openfile.showdialog();
        frm.doc = frm._openfile.safefilenames;
        frm.path = frm._openfile.filenames;
        for (int i = 0; i < frm.doc.length; i++)
        {
            frm._playlist.items.add(frm.doc[i]);
        }
    }
}

它不会发生