Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何动态引用savefiledialog_.net_Vb.net_Methods_Reference_Savefiledialog - Fatal编程技术网

.net 如何动态引用savefiledialog

.net 如何动态引用savefiledialog,.net,vb.net,methods,reference,savefiledialog,.net,Vb.net,Methods,Reference,Savefiledialog,我必须使用savefiledialog,我想从没有显示它的代码中引用它执行save click(就像我们使用.performclick方法或简单地引用sub,但这似乎不适用于savefiledialog类)。 我怎样才能做到这一点 有什么建议或方法吗 另外,我正在尝试将其保存为html文件 我不能清楚地理解你的陈述,请详细说明,“简单地说 将代码移到它自己的方法中,并直接调用它“ 我猜你有这样的想法: Private Sub Button1_Click(sender As Object, e A

我必须使用savefiledialog,我想从没有显示它的代码中引用它执行save click(就像我们使用.performclick方法或简单地引用sub,但这似乎不适用于savefiledialog类)。 我怎样才能做到这一点

有什么建议或方法吗

另外,我正在尝试将其保存为html文件

我不能清楚地理解你的陈述,请详细说明,“简单地说 将代码移到它自己的方法中,并直接调用它“

我猜你有这样的想法:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim FileName As String = SaveFileDialog1.FileName
        ' ... do something with "FileName" ...
    End If
End Sub
Private FileName As String = ""

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
        Me.FileName = SaveFileDialog1.FileName
        SaveToFile()
    End If
End Sub

Private Sub SaveToFile()
    If Me.FileName <> "" Then
        ' ... do something with "FileName" ...
    End If
End Sub
您可能希望将“do something”部分移到自己的方法中,如下所示:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim FileName As String = SaveFileDialog1.FileName
        ' ... do something with "FileName" ...
    End If
End Sub
Private FileName As String = ""

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
        Me.FileName = SaveFileDialog1.FileName
        SaveToFile()
    End If
End Sub

Private Sub SaveToFile()
    If Me.FileName <> "" Then
        ' ... do something with "FileName" ...
    End If
End Sub
Private FileName As String=“”
私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
如果SaveFileDialog1.ShowDialog=Windows.Forms.DialogResult.OK,则
Me.FileName=SaveFileDialog1.FileName
SaveToFile()
如果结束
端接头
私有子存储文件()
如果是Me.FileName“”,则
' ... 用“文件名”做些什么。。。
如果结束
端接头

这是一个细微的区别,但现在您可以从其他地方再次调用
SaveToFile()
,而无需首先显示对话框*假设您在文件名中输入了一个有效值,或者用户为您选择了一个值。

我按照您提到的方式进行了操作,即不使用savefiledialog直接保存,并且可以正常工作

  My.Computer.FileSystem.WriteAllText(SaveFileDialog1.FileName, Form1.rt1.Text, False)

SAveFileDialog用于从用户获取所需的输入。如果要在没有用户输入的情况下保存文件,则无需使用SaveFileDialog,而只需使用System.IO类。听起来您有在显示save对话框后运行的代码,但您希望在不显示对话框的情况下运行它。如果是这种情况,只需将代码移到它自己的方法中,并直接调用它。您可以将所选文件名保存在类级变量中,以便所有需要它的方法都可以使用。@idle\u注意,我不能清楚地理解您的语句,请详细说明,“只需将代码移到自己的方法中并直接调用它”现在我理解了代码,如果用户点击按钮,在一些小的改变后它就工作了。如果您不希望出现savefiledialog,那么为什么要使用它呢?!这就是史蒂夫说的。您不需要SaveFileDialog来执行文件I/O。您的第一句话
我必须使用SaveFileDialog,我想从没有显示它的代码中引用它
,这似乎是错误的做法。更详细地解释如果这对你的情况没有帮助,你会怎么做。我必须在按钮1的点击事件中,将richtextbox中的文本保存为html文件,并在textbox1中显示其名称和目录。然后它应该将文件保存为html。因此文件名在TextBox1中。如果文本框为空,则希望先显示SaveFileDialog?…否则只保存文件而不显示对话框?