PDA

View Full Version : سوال: Treeview & File



morika
دوشنبه 28 بهمن 1387, 16:07 عصر
آیا میشه موارد treeview رو به صورت فایل تو ویندوز نگهداری کرد و بعد دوباره اون رو تو treeview لود کرد ممنون

anooshiran
سه شنبه 29 بهمن 1387, 10:47 صبح
آیا میشه موارد treeview رو به صورت فایل تو ویندوز نگهداری کرد و بعد دوباره اون رو تو treeview لود کرد ممنون

سلام دو ست عزيز

اين امكان پذير هست . فقط من نميدانم منظورت treeview است كه در vb خودت ايجاد ميكني يا treeview نرم افزارها و ديالوگ باكس هاي ويندوز.

اگر بگويي كدام بهتر مي توانم جواب دهم

morika
سه شنبه 29 بهمن 1387, 14:59 عصر
البته جناب بنده منظروم همون ساختار درختی هست که خودمون تو VB درست می کنیم

anooshiran
سه شنبه 29 بهمن 1387, 19:33 عصر
سلام دوست عزيزاين يك پروژه كوچكي است كه برايت نوشته ام.البته من فقط در دو سطح به آن پرداخته ام ولي شما ميتواني بر حسب نيازت هر چند سطحي كه ميخواهي به Node ها اضافه كنيدر ضمن من اطلاعات اوليه Node ها را به عمد در يك Datatable ريخته ام كه طريقه خواندنن آن و ساختار Table مشخص گردد و براي ذخيره هم مجددا اطلاعات را در 2 Table ديگر ريخته ام كه شما ميتوانيد به جاي ريختن در Table مستقيما وارد فايل خود كنيد و از آنجا كه نوع ديتابيس شما را نمي دانستم به ريختن در Table بسنده كردم . البته تعدا لايه اي ذخيره سازي هم بنا بر نياز شماست . من در همان دو سطح به Table ريخته اماميدوارم كه صورت مسئله را درست متوجه شده باشم.در هرصورت اگر هر مشكل يا سئوالي باشد خوشحال مي شوم كه از شما بياموزم.

morika
سه شنبه 29 بهمن 1387, 22:24 عصر
با تشکر از توجه شما نسبت به سوال
اما جناب من منظورم اصلا بانک اطلاعاتی نبود منظور من یه فایل ساده مثلا txt. بود یا یه هنچین چیزی
مثله اینکه با یه کد اطلاعات تکس باکس رو تو یه فایل txt ذخیره می کن بعد دوباره او اطلاعات رو تو تکس باکس لود می کنن من می خواستم بدونم این کار واسه treeview همه امکان پذیر هست یا نه ؟
ممنون

morika
چهارشنبه 30 بهمن 1387, 13:23 عصر
کسی از دوستان راه حلی نداره

anooshiran
پنج شنبه 01 اسفند 1387, 08:35 صبح
سلام دوست عزيز

پروژه اي كه اينجا گذاشتم دقيقا همان چيزي است كه شما نياز داريد.خواندن و ذخير ه LableNodes از/در TextBox .
شما بايد توجه كنيد كه براي دسترسي و خواندن يا نوشتن از/در textBox حتما بايد از
FileStream, StreamReader , StreamWriter استفاده كنيد .

در ضمن من اينجا از DataSet و Datatable فقط در سطح يك array استفاده كرده ام و هيچ نيازي به هيچگونه Database براي ذخيره سازي يا خواندن نيست.

در هر صورت اميدوارم كه اين پروژه كوچك مشكل شما را حل كند و كارآ باشد.

mehrnoush
پنج شنبه 01 اسفند 1387, 10:28 صبح
سلام دوست عزیز (anooshiran)
من فکر می کنم یا من خیلی مبتدی هستم یا شما خیلی حرفه ای
این کدی که شما قرار دادی در صورتی عمل می کنه که شما treeview رو با کد نویسی تو برنامه به وجود بیارید نه اینکه از قبل treeview رو داشته باشید
من کد شما رو امتحان کردم اما هر کاری کردم نشد
نمی دونم چرا ولی اگر می تونید کدی قرار بدید که از treeview ای که از طریق ویزار برنامه ایجاد شده کار کنه
ممنون

anooshiran
پنج شنبه 01 اسفند 1387, 11:49 صبح
سلام دوست عزیز (anooshiran)
من فکر می کنم یا من خیلی مبتدی هستم یا شما خیلی حرفه ای
این کدی که شما قرار دادی در صورتی عمل می کنه که شما treeview رو با کد نویسی تو برنامه به وجود بیارید نه اینکه از قبل treeview رو داشته باشید
من کد شما رو امتحان کردم اما هر کاری کردم نشد
نمی دونم چرا ولی اگر می تونید کدی قرار بدید که از treeview ای که از طریق ویزار برنامه ایجاد شده کار کنه
ممنون

سلام دوست عزيز

نمه شما آماتوريد و نه من حرفه اي

اين فايل ضميمه رو دانلود كنيد .در Form2 من Treeview را به صورت Static تعريف كردم. ولي دوست عزيز اگر شما بخواهي از اين متد براي ذخيره سازي و فيلتر استفاده كني حتما بايد Node ها رو RunTime به treeview اضافه شده add كني.

اميدوارم به دردت بخوره

morika
پنج شنبه 01 اسفند 1387, 12:58 عصر
دوست من (Anooshiran)
این دوستمون درست میگه چون برنامه من به این صورت که کاربر می تونه هرجا که بخواد به treeview اظافه کنه (node) اما وقتی این کار صورت بگیره زمان لود شدن برنامه اشکال می گیره چون با این روش شما حتما برنامه باید اول اون ایتمی رو که از طریق کد نویسی دریافت کرده لود کنه و اگه کاربر یک ایتم قبل از اون ایجاد کنه دیگه برنامه قادر باه لود کردن نیست
به همین دلیل نباید ایتم ها رو از طریق کد نویسی وارد کرد
ممنون

anooshiran
پنج شنبه 01 اسفند 1387, 13:14 عصر
دوست من (Anooshiran)
این دوستمون درست میگه چون برنامه من به این صورت که کاربر می تونه هرجا که بخواد به treeview اظافه کنه (node) اما وقتی این کار صورت بگیره زمان لود شدن برنامه اشکال می گیره چون با این روش شما حتما برنامه باید اول اون ایتمی رو که از طریق کد نویسی دریافت کرده لود کنه و اگه کاربر یک ایتم قبل از اون ایجاد کنه دیگه برنامه قادر باه لود کردن نیست
به همین دلیل نباید ایتم ها رو از طریق کد نویسی وارد کرد
ممنون


دوست عزير سلام

دقيقا متوجه منظ.ورت نمي شم. شما در بازه node ها صحبت ميكني يا در باره خود Treeview.
خواست شما ذخيره ايتم هاي لود شده بود حال چطور مي شه node ها رو Static تعريف كرد وقتي تعدادشون و Lable شون مشخص نيست.
در ضمن من براي مثال اون را توي Load_Event مي سازم. شما ميتونيد اونو تو Shown_Event يا هر event كه مد نظرتونه بسازيد . حتي با Burron1_click . اين ديگه بستگي به سليقه و استراكچر برنامه شما داره.
باز هم اگر مشكلي برات پيش آمد در خدمت هستم البته تا حدي كه دانشم اجازه بده

mehrnoush
شنبه 03 اسفند 1387, 16:28 عصر
دوست من این برنامه شما خیلی جالب کار نمی کنه اگه خودتون هم تو برنامه یه treeview بسازید و اون رو پر کنید ( بدون کد نویسی و از طریق ویزارد ) نمی تونید او رو save کنید حتی اگه منو بزارید تا کاربر ایتم اظافه کنه باز هم نمی تونید save کنید

anooshiran
یک شنبه 04 اسفند 1387, 12:19 عصر
دوست من این برنامه شما خیلی جالب کار نمی کنه اگه خودتون هم تو برنامه یه treeview بسازید و اون رو پر کنید ( بدون کد نویسی و از طریق ویزارد ) نمی تونید او رو save کنید حتی اگه منو بزارید تا کاربر ایتم اظافه کنه باز هم نمی تونید save کنید

سلام دوست عزيز

بزرگي مي گفت "تنها ناممكن خود ناممكن است".

شايد به طريقي كه شما ميخواهيدليبل node هاي از پيش تعريف شده يا Static را در هنگام اجرا تغيير داده و ذخيره كنيد ، بسيار ساده تر از ايجاد و تغير Dinamic آن است.
به هر صورت يك پروژه كوچك برايتان نوشتم كه چگونگي تغييرات خواص كنترل هاي static را برايتان روشن مي كند.

در اين پروژه شما هر تغييري كه به كنترل هاي از پيش تعريف شده را بدهيد ذخيره ميكند .
مانند تغيير سايز و مكان فرم ، تغيير رنگ فرم ، تغيير تكست فرم، تغيير ليبلهاي treeview و...

باز هم اگر سئوال و مشكلي بود درخدمت هستم .