يبدو لي وكأنك غير متأكد من كيفية استدعاء الوظيفة من الزر النقر (قد أكون مخطئًا). لذلك أولاً عند استدعاء وظيفة ، يجب دائمًا إرجاع قيمة (من الكلمة الرئيسية للعودة).
لقد قمت بإعداد وظيفة تعرض OpenFileDialog - فما هي القيمة التي يجب أن تعود؟ يجب أن يعيد مسار واسم الملف. يمكن تخزين هذا فقط في سلسلة متنوعة.
لذلك ، قد يصلحه قليلاً من التغيير في الكود الخاص بك.
مثال على هيريس:
في رمز الزر الخاص بك ، تريد الاتصال بالوظيفة الفعلية بالإضافة إلى متغير لتخزين اسم المسار (كما هو مذكور أعلاه) ببساطة:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim thePathName As String = GetFileName()
MessageBox.Show(thePathName)
End Sub
الآن ، في الوظيفة التي تريد إضافة العودة. هناك مشكلة في IF-Statement (لا نهاية IF). إذا كانت النتيجة على ما يرام ، فقم بإرجاع اسم المسار. وإلا فإن إرجاع فارغ واتصل بخطأ (يمكنك تغيير هذا):
Private Function GetFileName() As String
Dim OpenDonorList As New OpenFileDialog
OpenDonorList.Filter = "txt files (*.txt)|*.txt"
OpenDonorList.Title = "Save File As"
OpenDonorList.InitialDirectory = "C:\"
OpenDonorList.RestoreDirectory = True
DialogResult = OpenDonorList.ShowDialog
If DialogResult = Windows.Forms.DialogResult.OK Then
Return OpenDonorList.FileName
Else
MessageBox.Show("Error!")
Return vbNull
End If
End Function
في رمز الزر ، يمكنك بعد ذلك استدعاء روتين آخر يستخدم قيمة thePathName للقيام بشيء ما ، مثل فتح الملف للقراءة. في المثال أعلاه ، سيعرض فقط مراسلة الرسائل مع اسم المسار إلى الملف المحدد.
أتمنى أن يساعدك هذا.