السلام عليكم :
اريد ان اعمل في قائمة ملف فتح ملف جديد وعند الضغط عليه يفتح ملف جديد في كل مرة
واذا عملت حفظ يقوم بالحفظ على هذا الملف الجديد المفتوح كما في الورد تماما
السلام عليكم :
اريد ان اعمل في قائمة ملف فتح ملف جديد وعند الضغط عليه يفتح ملف جديد في كل مرة
واذا عملت حفظ يقوم بالحفظ على هذا الملف الجديد المفتوح كما في الورد تماما
أخي amr15،
أرجو أن تكتب عنواناً يدل على محتوى الموضوع حتى تستطيع أن تحصل على أكبر كم من الردود.
بالنسبة لسؤالك، أعتقد أن هذا قد تم طرحه سابقاً هنا:
رأس الحكمة الإيمان بالله
بعد قراءة مشاركة الأخ الكريم قمت بإعداد إجابة له OffLine، وعندما رجعت لأضع الجواب أخذت بالبحث عن المشاركة ولم أجدها، وبعد عناء وجدت أن الأستاذ المشرف قد غير عنوانها، وكل هذا العناء بسبب عنوان المشاركة غير المناسب، سامحك الله أخي السائل:
إن كان التطبيق هو MDI فالرابط الذي وضعه الأستاذ محمد كاف، أما إن أردت تطبيق يستخدم TextBox فها هي إجابة صغيرة:
قم بوضع TextBox على الفورم.
قم بوضع الأداة OpenFileDialog (تجدها في صندوق الأدوات بالطبع).
قم بوضع الأداة MainMenu
الأداة MainMenu أصبحت الآن تحت الفورم وأصبح إسمها MainMenu1، قم بإضافة القوائم التالية لها:
File (هذه هي القائمة الرئيسية) وتحتها أضف القوائم التالية:
Open
Save
الآن أفتح المحرر وفي أعلى الملف (أي قبل Public Class Form1 قم بإضافة السطر التالي):
Imports System.IO
هذا السطر يقوم بإستيراد الفئة الخاصة بالتعامل مع الملفات (كما فسر الماء بعد جهد بالماء، أليس كذلك؟).
الآن قم بإضافة متغير على مستوى الفورم (أي بعد الكلمات Windows Form Designer generated code أكتب ما يلي:
Dim myFileName As String
الآن إذهب الى حدث click لقائمة Open وأكتب الكود التالي:
Private Sub menuOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menuOpen.Click OpenFileDialog1.Filter = "Text Files (*.txt)|*txt" If OpenFileDialog1.ShowDialog = DialogResult.OK Then TextBox1.Text = "" myFileName = OpenFileDialog1.FileName Try Dim myReader As New StreamReader(myFileName) Do While myReader.Peek <> -1 TextBox1.Text &= myReader.ReadLine & ControlChars.CrLf Loop myReader.Close() Catch ex As IOException MessageBox.Show(ex.Message) End Try End If End Sub
إذهب الى حدث click لقائمة Save واكتب الكود التالي:
Private Sub menuSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menuSave.Click If myFileName <> "" Then Dim myWriter As New StreamWriter(myFileName) myWriter.Write(TextBox1.Text) myWriter.Close() End If End Sub
الآن تستطيع فتح ملف نصي وبعد إجراء أي تغيير عليه تستطيع حفظ التغييرات.
Learn Japanese :>>> http://www.nouben.com/
السلام عليكم :
شكرا جزيلا لكم اخوتي الكرام على هذة المعلومات المفيدة وهذا المنتدى الرائع
شكرا
السلام عليكم :
و لكن انا اريد عندما اضغط على جديد وليس فتح ان يفتح ملف جديد من دون ان يظهر
ال open dialog مثل في الورد عند الضغط على جديد يفتح ملف جديد مباشرة وعند الضغط على حفظ او حفظ باسم يفتح نفس ال dialog box ونكتب اسم للملف الجديد المفتوح ومكان للتخزين
عارفة اني تعبتكم معاية بس سامحوني محتاجة الكود للمشروع ..ز
وشكرا
يا amr15، من الواضح أنك بدأت بتعلم البرمجة فقط قبل يومين؟ :-)
الموضوع سهل يا عزيزي، فقط أشطب أي نص في ال Textbox حتى يصبح عندك ملف جديد، فلو افترضنا بأنه عندك Menu إسمها NEW، فقط في حدث ال click لها ضع الكود التالي:
TextBox1.Clear()
أو
TextBox1.text=""
وقم بإستخدام الأداة SaveFileDialog (ونعاملها تقريباً نفس معاملة OpenFileDialog)، قم بوضع تلك الأداة وقم بإستدعائها من خلال زر الحفظ.
للأسف لا يوجد على كمبيوتري الحالي الفيجوال ستديو حتى أعمل لك مثال، لذلك قم بالمحاولة وإن لم تنجح فسأعمل لك مثال حال إخبارك لي.
Learn Japanese :>>> http://www.nouben.com/
لم يهن عليّ أن أتركك تصارع هذه المشكلة العويصة بنفسك، لذلك ها هو مثال بسيط، تستطيع عن طريقه القيام بالعمليات التالية:
New
Open
Save
Save As
وفيه أيضاً جواب على سؤال آخر طرحته حضرتك في المنتدى عن كيفية تعطيل Copy و Cut إن لم يكن هناك نص مختار في ال TextBox.
مع ملاحظة بأن المثال غير محكم الصنعة، فمثلاً لربما قمت بفتح ملف جديد وكان عندك ملف قديم لم تقم بحفظه، ففي مثالي لم أراع أن يقوم البرنامج بإخبارك بذلك وأخبارك بأن تحفظ التغييرات على الملف الأول (هذه وظيفة بيتية لك :-)... وأيضاً وظيفة بيتيه أخرى وهي أن تقوم بتعطيل Save و Save As إن لم يكن عندنا ملف جديد أو قمنا بفتح ملف من الجهاز.
تفضل ولا تنسانا من دعواتك وفي المرات القادمة لا تزعل الأستاذ محمد بعدم كتابة عنوان مليح لسؤالك، فهو مش ملحق تغيير في العناوين ونقل لها :-)
Learn Japanese :>>> http://www.nouben.com/
السلام عليكم :
شكرا على هذة الردود والمشاركات ولكن ياجماعة ليش ما حدا فاهم قصدي كل الي كتبتوة صح وعملتة من اول
سواء ال حفظ , فتح , حفظ باسم بس المشكلة في ال جديد بدي اعمل لها كود بحيث انة في كل مرة
Fileopendialog اضغط على جديد يقوم بانشاء ملف جديد بدون اظهار
ويفتحة في التكس بوكس الموجود
ويكون القديم قد اغلق ولا أريدة ان ينشئ ملف وخلاص لا بل يكون الملف المفتوح امامي هو المنشا واذا كتبت
علية وعملت حفظ يحفظ على الملف الجديد وبعدين خلو بالكم اني في كل مرة اضغط جديد
ينشا ملف جديد غير عن الذي انشاة قبل عند الضغط على جديد وليس مرة واحدة فقط .
مش عارفة فاهمين قصدي ولا لاء واسفة جدا على الازعاج .
ملاحظة :
اريدة ان ينشئ الملف وليس ان اختار ملف موجود اصلا .. وان ينشأ الملف ويفتح في التكس
بوكس الموجود ويحفظ كل التغيرات علية ...
اقتباسمش عارفة
أختي الكريمة (واعتذر عن مناداتك بصيغة المذكر من قبل) أقسم بالله بأنني لم أفهم تماماً :-) ، وحتى أفهم قمت فتحت برنامج ال WORD عندي لأفهم تماماً ماذا تريدين، ولاحظت بأنه برنامج الورد يفتح نسخة أخرى من البرنامج (وليس Child Form) عندما يكون عندك Child Form قديم، أما إذا لم يكن عندي Child Form فإنه يقوم بإنشاء Child Form داخل النسخة الأولى من البرنامج (أي لا يكون هناك نسخة جديدة من برنامج ال Word ) هل هذا ما تقصدين؟؟؟؟؟؟؟
2) أم تريدين أن تنشيء تطبيق مثل برنامج WordPad وبرنامج NotePad بحيث يقوم بإخبار المستخدم بحفظ التغييرات التي جرت على الملف الأولى قبل فتح ملف جديد.
3) أم تريدين برنامج MDI بحيث يفتح البرنامج Child Form في كل مرة يضغط فيه المستخدم على New تاركاً النسخة الأولى ظاهرة (مثل نسخ ال Word القديمة).
أرجو أن تخبريني أي الثلاث خيارت تريدين، أم أنه يوجد عندك خيار رابع (وفي هذه الحالة يرجى الشرح بشكل جيد)، حتى أستطيع عمل ما تريدين.
Learn Japanese :>>> http://www.nouben.com/
ولا تنسين أن تخبريني هل تريدين أن تستخدمي RichTextBox أم Regular TextBox.
Learn Japanese :>>> http://www.nouben.com/
السلام عليكم :
سوري على عدم الشرح بوضوح .اريد ان انشئ تطبيق
مثل ال notepad بحيث يحفظ الملف القديم وينشئ ملف جديد
في كل مرة اضغط على جديد (من دون اظهار مربع الحوار
لاختار منة ملف لفتحة) وعندما اكتب علية واحفظة يحفظ على الملف الجديد
وليس الملف المفتوح من اول مثل ال notepad when you choose file
new
thanks ......
أختي الكريمة،
إذاً أنت تريدين أن تنشيء Notepad، أي تريدين أن تستخدمي TextBox وليس RichTextBox، وقد قمت بكل شيء ما عدا كيفية كتابة كود New، حيث أنك لا تعرفين كيفية برمجة هذا الكود بحيث أنه إذا كان عندنا فايل في ال TextBox في السابق فإنه يجب أن يقوم البرنامج بحفظ الفايل قبل أن يقوم بشطب محتويات ال TextBox، هل هذا هو قصدك؟ إن كان الأمر كذلك فدعيني أشرح لك كيفية القيام بذلك:
1) قومي بالإعلان عن متغير من نوع String على مستوى الفورم، وعندما تفتحين أي فايل وتضعين محتوياته في ال TextBox فقومي بوضع إسم الفايل الذي فتحتيه في ذلك المتغير، فلو مثلاً أسميت ذلك المتغير بإسم FileName وقمت بفتح فايل عن طريق OpenFileDialog1 فقومي بكتابة الكود التالي بعد أن تقومي بوضع نص الفايل في صندوق النص:
FileName=OpenFileDialoge1.FileName
وهنا وعندما تضغطين على الزر New قومي بوضع جملة شرط تتأكد بأن المتغير FileName ليس فارغاً، فإن كان فارغاً فقومي فقط بحذف محتويات صندوق النص TextBox1 دون أي تتخذي أي إجراء آخر، أما إذا كان المتغير فيه نص (وهو في هذه الحالة إسم الفايل الذي فتحتيه سابقاً) فقومي من خلال جملة الشرط بحفظ الفايل (وهنا تحتاجين الى جملة شرط أخرى تقوم بالتأكد أولاً من أن صندوق النص بعد وضع الفايل فيه لم يحدث فيه تغييرات فلا داع للحفظ، أما إن حدثت تغييرات فإننا نقوم بالحفظ قبل أن نشطب محتويات صندوق النص، أما كيف نتأكد بأنه كان هناك تغييرات فيتم ذلك عن طريق
If TextBox1.modified=True then
ويوجد قضية أخرى، لربما قام المستخدم بعد أن شغّل برنامجك بالكتابة في مربع النص (أي لم يقم بفتح فايل)، فإن قام بالضغط على زر New فيجب على برنامجك قبل شطب محتويات صندوق النص أن يقوم بالتأكد بأن نص الصندوق ليس فارغاً ويتم ذلك عن طريق
If TextBox1.TextLenght<>0 then
فإن البرنامج في هذه الحالة سيظهر رسالة تطلب من المستخدم أن يحفظ التغييرات أو أن لا يحفظها، وفي هذه الحالة يجب أن تعلني عن متغير آخر على مستوى الفورم (مثلاً SaveFile من نوع Boolean)....
لقد كتبت لك كود الزر New وراعيت فيه الأمور أعلاه جميعها، ولكن عليك ملاحظة أمراً، في العادة نحن لا نكتب الكود في البرامج الكبيرة بهذه الطريقة، يجب أن نكتب الكود ونقوم بإختصاره قدر الإمكان وتنظيمه ويتم ذلك عن طريق ال Functions و Subs، فإن لم ترغبين بالإستعانة بهذه الأمور فالكود التالي لا بأس به لزر ال New ولكن ستلاحظين بأنك ستكررين الكثير منه أيضاً في زر Open. ويجب أيضاً أن تقومي عندما تفتحين ملفاً جديداً أن تضعي إسم الملف في المتغير FileName الذي شرحت وظيفته أعلاه.
ها هو الكود مرفقاً (كود الزر New فقط)، برعاية الله.
Learn Japanese :>>> http://www.nouben.com/
هاهو تطبيق MDI يستخدم فيه كاتبه TextBox وفيه ميزات جميلة جداً مثل ال ToolBar، قمت بإنزاله من الإنترنت لأتفاجأ بأن كاتبه أخ عربي.
تستطيع قراءة الكود وملاحظة كيف قام الكاتب بأمر ما، وإن إستعصت عليك نقطة ما فنحن بالخدمة... ويجب عليك ملاحظة أمر ما وهو أن قراءة كود برامج التي عملها الآخرون صعب حتى وإن كان البرنامج بسيط، والسبب في ذلك ليس لصعوبة الكود بل لعدم إنشاءنا التطبيق بأنفسنا، وتزداد الصعوبة أيضاً عندما لا يكتب المؤلف comments.
تفضلي
Learn Japanese :>>> http://www.nouben.com/
السلام عليكم :
يا أخي الكريم لو تكرمت وعملت الملفات بامتداد غير ال .rar لانة
لا يوجد عندي البرنامج الذي يشغلها
مع تحياتي
أختي الكريمه، تفضلي مع نصيحتي لك بإنزال ال Winrar فهو برنامج صغير جداً وكما تلاحظين معظم الملفات التي فيها الفائدة في المنتدى أو غيره من المواقع تكون مضغوطة بهذا البرنامج، ها هو رابطه ومرفقاً أيضاً البرنامجين عن طريق WinZip.
http://www.moon15.com/vb/showthread.php?t=...ighlight=winrar
Learn Japanese :>>> http://www.nouben.com/
هذا الموضوع مغلق.