2015-06-23 2 views
-3

я пытался сделать этот код:обращающиеся элементы формы из класса

 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 , а затем экземпляр формы и поместить весь код в там

, что предположим, что произойдет, когда я щелкните диалог файла Кнопка открывает и все выбранные названия песен будут идти в ListBox по какой-то причине не открывается и не компиляции, ни исключения ошибок не выскакивает , пожалуйста, сообщите

+0

ли щелчок обработчик элемента формы правильно присвоенный вашему методу ? –

+0

im вид нового к этому. является ли тот факт, что изнутри кода формы он работает, означает, что обработчик правильно назначен? –

+0

{// _open // resources.ApplyResources (this._open, "_open"); this._open.BackColor = System.Drawing.Color.Transparent; this._open.Image = global :: PhoenixDownloader.Properties.Resources.open_file_icon; this._open.Name = "_open"; this._open.TabStop = false; this._open.Click + = новый System.EventHandler (this._open_Click_1); } Это обработчик, кажется, я думаю. правильно? –

ответ

0

Как я вижу, обработчик события правильно назначен. Btw попробуйте этот код, он работает в моем проекте:

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]); 
     } 
    } 

Примечание: Я использовал локальные переменные для выбранных имен файлов и пути.

0

Возможно, я не очень хорошо объяснял себя. im пытается вызвать класс, который делает это. как это

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]); 
     } 
    } 
} 

}

и со стороны события:

 public void _open_Click_1(object sender, EventArgs e) 
    { 
     mplayer(); 
    } 

и это не происходит