PDA

View Full Version : برگرداندن خصوصیات اولیه (رنگ و فونت و.....)



sm
چهارشنبه 31 تیر 1383, 11:41 صبح
باسلام
توی vb.net یه 5-6 تا فرم دارم که روی هرکدومش حداقل 150تا Object از قبیل Panel , textbox , label ,.... وجود داره
من در طراحی اومدم رنگ و فونت اولیه اونها رو تنظیم کردم و می خوام که به کاربر نیز این امکان رو بدهم که از رنگها و فونتهای دلخواه خود استفاده کنه که اینکار رو هم با ContextMenu , Control انجام دادم حالا دوتا مشکل دارم :
1- کاربر بتوونه بعد از اینکه یکبار تغییرات دلخواه خودشو اعمال کرد در مراجعات بعدی دیگر نیازی به تغییر دادن مجدد اونها نداشته باشه یا بعبارتی با خارج شدن از برنامه تنظیمات از بین نرود و ذخیره شود...
2- می خوام برای کاربر یه امکان بنام حالت پیش فرض قرار بدم که با انتخاب اون همه تنظیمات برگرده به اون حالتی که خودم طراحی کردم...

ممنون میشم اگه دوستان مطلبی دارن راهنماییم کنن

sh
یک شنبه 04 مرداد 1383, 19:00 عصر
دوست عزیز این کاری نداری شما تغییرات رو درون یه فایل یا قسمتی از دیتابیس برنامه ات درج کن و با هر بار لود شدن فرم چک کن که آید رنگهای اولیه نمایش داده شود یا رنگ دلخواه کاربر

میتونی شماره یا نام رنگ اونها رو در همون فایل ذخیره کنی تا همیشه به آخرین رنگی که کاربر انتخاب کرده واقف باشی

کار بسیار ساده ای هست

linux
دوشنبه 05 مرداد 1383, 00:09 صبح
:)
این رجیستری ویندوز مال همین کاره دیگه!

علیرضا مداح
دوشنبه 05 مرداد 1383, 09:02 صبح
سلام.
میتونید از xml هم استفاده کنید و مشخصات اشیاء رو در یک فایل xml ذخیره کنید .

sm
سه شنبه 06 مرداد 1383, 19:34 عصر
با تشکر از دوستان عزیز
راستش تمام راههایی که می گین شدنی است
اما می خواستم اگه بشه بدون اینهمه کدنویسی اینکارو بکنم اخه چیزی حدود 1600 شی دارم که اگه خواسته باشم اونه رو دونه به دونه کنترل کنم کار ساده ای نیست
--------
خود وی بی یه گزینه ی Defult داره که رنگها و فونتها رو بر می گردونه اما مثلا برای رنگ ، رنگ با نام Control رو بر میگردونه می خواستم بدونم هیچ جوری نمی شه که این رنگ رو چیزی دیگه تنظیم کرد که وقتی از Default استفاده می شه بدرستی کار کنه؟
ممنون می شم

علیرضا مداح
یک شنبه 11 مرداد 1383, 16:18 عصر
سلام .
آتفاقا کنترل کردن 1600 شی ء میتونه کار ساده ای هم باشه !
فرض کنید که شما میخواهید طول تمام کنترل های بر روی فرم را درون یک رشته ذخیره کنید آنوقت باید از کدی شبیه به کد زیر استفاده کنید : کافیست یک جعبه متن به فرم خود اضافه کرده و کد زیر را در درون رخداد Load فرم خود قرار دهید :


Dim str as string
for each ctrl as control in me.controls
str &= ctrl.Name & " : " & ctrl.width.tostring & vbcrlf
next
textbox1.text = str
به وسیله این کد ابتدا نام هر کنترل و سپس علامت دونقطه و بعد طول آن کنترل نمایش داده میشود . ااگر msdn رو مطالعه بفرمایید خیلی خوبه . همچنین میتونید با استفاده از دستور TypeOf و Is کاری کنید که تنها محدوده خاصی از کنترلها مثلا فقط جعبه متنها رو مورد بررسی قرار بدین .
حالا شما میتونید به جای اینکه مشخصات رو توی رشته ذخیره کنید در درون یک فایل تصادفی یا فایل XML یا دیتابیس و یا هرجای دیگه ای ذخیره کنید .
اگر باز هم مشکلی داشتید بفرمایید تا اونجا که در توان باشه کمکتون میکنیم.

sm
یک شنبه 11 مرداد 1383, 20:17 عصر
ممنون
امتحان می کنم اگه مشکلی بود مزاحم می شم

sm
دوشنبه 12 مرداد 1383, 20:26 عصر
باسلام
آقای مداح عزیز این روشی رو که گفتین امتحان کردم برای اشیایی که همه خصوصیاتشون یکی باشه خیلی خوبه اما من روی فرمام کنترلهای مختلفی با خصوصیات متفتوتی دارم
مثلا 100عدد لیبل که رنگشون آبیه 200ععد که رنگشون سبزه و10 کلید که رنگشون قرمزه و....... و البته برخی دیگه از خصوصیاتشون مثل اندازه و فونت و.........
ممنون میشم که در این مورد هم راهنماییم کنین
فکر کنم باید آرایه آرایه کنیم
ممنون میشم

sh
دوشنبه 12 مرداد 1383, 20:58 عصر
انتظار داری با سه خط کد 3000 شی رو کنترل کنی ؟ خب برای هر دسته یه حلقه بنویس

sm
دوشنبه 12 مرداد 1383, 22:50 عصر
ببخشین
آقا کتک که نمی خوام...فقط می خواستم ببینم اگه راه ساده تری هست استفاده کنم حالا که می گین نمیشه ....................... برای هرکدومش یه حلقه مینویسم
ممنون!!!!!!!!!

sm
یک شنبه 18 مرداد 1383, 19:52 عصر
باتشکر از دوستانم
راستش من اومدم که با استفاده از بانک اونها رو ذخیره کنم ولی به یه مشکل برخوردم
برای اینکار اومدم فونت هر شی را داخل یک String ریختم که اونها رو بریزم داخل بانک ولی وقتی که می خواستم اطلاعات موجود در بانک رو به شی اختصاص بدم نمی شد چونکه نمیشد تایپ String رو به Font نسبت داد و همین مشکل رو برای رنگها داشتم
می خواستم از دوستان خواهش کنم درصورت امکان با یه مثال برام بزنن و همه مراحلش و توضیح بدن
خیلی خیلی کارم گیره
ممنون
من اینها رو نوشتم که موفق نشدم :
dim str as string
str=me.label1.font.tostring
me.label2.font=str
که باخطا مواجه شدم
البته این مثال کلادر VB بود ولی برای بانک هم همین مشکل رو داشتم
و برای اختصاص دادن فون به یک شی فکر کنم باید از New System.darwing.font استفاده کنم که اصلا نتوانستم اونو پیاده کنم
ممنون می شم کمکم کنین