Отправить путь к файлу в текстовое поле в другой форме

#vb.net #filepath

#vb.net #путь к файлу

Вопрос:

В моем классе я хочу вернуть путь к файлу в текстовое поле в другой форме, но он не вернет путь к файлу после сохранения. Вероятно, потому что это вспомогательный элемент, который не вернет значение, я прав? Но как правильно это исправить?

 Friend Sub GetFilepath(ByVal hide As Boolean)
    Dim GeluidS As New GeluidSchermForm
    Call ExcelKoppelen("Z:locationGeluidscherm_template.xls")
    Filepath = Xl.GetSaveAsFilename("", "Excel document (*.xls), *.xls", , , )
    Workbook.SaveAs(Filepath)
    GeluidS.Excelfilenaam.Text = Filepath
End Sub
  

Ответ №1:

 Friend Function GetFilepath(ByVal hide As Boolean) as String
    Dim GeluidS As New GeluidSchermForm
    Call ExcelKoppelen("Z:locationGeluidscherm_template.xls")
    Filepath = Xl.GetSaveAsFilename("", "Excel document (*.xls), *.xls", , , )
    Workbook.SaveAs(Filepath)
    GeluidS.Excelfilenaam.Text = Filepath
    return Filepath
End Sub
  

Нравится это?

Комментарии:

1. Спасибо за быстрый ответ, но он все равно не вернет путь к файлу.

2. Думаю, мне нужно больше контекста. Вы пытаетесь вернуть путь к файлу? Какой тип пути к файлу?

3. Мой проект vb находится в офисе, поэтому попытаюсь объяснить, что у меня есть.

4. Мой проект vb находится в офисе, поэтому попытаюсь объяснить, что у меня есть. У меня есть форма с именем GeluidSchermForm, в этой форме у меня есть кнопка, которая вызывает GetFilepath для class1. Затем Getfilepath вызовет Excelkoppelen, Excelkoppelen откроет Excel с нужным файлом и т. Д., А Затем вернется к GetFilepath . GetFilepath сохраняет файл шаблона где-то, и он должен передать путь к файлу обратно в текстовое поле с именем Excelfilenaam.text в форме GeluidSchermForm.

5. Путь к файлу — это просто тусклый путь к файлу в виде строки, расположенной в верхней части class1. Я надеюсь, вы понимаете, как я хотел работать. Вы, вероятно, спросите, почему бы вам просто не использовать его в самой GeluidSchermForm, но проблема в том, что этот метод вызывается много раз из разных форм.

Ответ №2:

Если указанный вами метод находится в форме, из которой вы хотите получить имя файла…

Вы можете создать свойство ReadOoly, которое возвращает глобальную переменную, и получить к ней доступ до удаления формы.

 textbox1.Text = frm.filePath
  

Кроме того, вы можете написать функцию, которая просто возвращает глобальную переменную и вызывает ее перед удалением формы.

 textbox1.Text = frm.getPath()
  

В зависимости от того, как GetFilePath() используется, это может не сработать. Вам придется вызывать его из-за пределов формы, где был создан экземпляр формы. Трудно сказать, как он используется только с помощью метода.