انجمن گفتگوی دانشگاه پیام نور

انجمنی برای بحث و تبادل نظر پیرامون مسایل,مشکلات,امتحانات و ... دانشگاه پیام نور
امروز يکشنبه 14 شهریور 1389, 8:44 am

تمام زمان ها بر حسب UTC + 3:30 ساعت مي باشد




ارسال مبحث جديد پاسخ به مبحث  [ 2 پست ] 
نويسنده پيغام
 موضوع پست: كنترل Common Dialog
پستارسال شده در: دوشنبه 2 فروردین 1389, 6:22 am 
آفلاين
کاربر جدید
نماد کاربر

تاريخ عضويت: يکشنبه 2 اسفند 1388, 5:54 pm
پست ها : 8
محل سکونت: شیراز
سلام

دنبال يك موضوع براي نوشتن بودم كه كنترل Common Dialog يادم افتاد. اين كنترل يكي از پركاربردترين كنترل‌ها در برنامه‌نويسي ويندوز است. كار اين كنترل، همانطور كه از اسمش معلوم است، نمايش دادن پنجره‌هاي معمول در ويندوز است. شايد شما تا حالا برايتان پيش آمده باشد كه بخواهيد در يك برنامه دستور Open قرار دهيد به طوري كه اجراي آن، پنجره‌اي باز شود و كاربر بتواند فايل مورد نظر را انتخاب كند.

خب، لازم نيست كه شما يك فرم طراحي كنيد، بلكه به راحتي مي‌توانيد از اين كنترل استفاده كنيد.



حالا يك پروژه vb باز كنيد. در جعبه ابزار راست كليك كرده و Components… را برگزينيد. مورد Microsoft Common Dialog Control را تيك بزنيد و OK را كليك كنيد. حالا يك CommonDialog و يك دكمه روي فرم بگذارید. ويژگي CancelError مربوط به CommonDialog را True كنيد. در رویداد كليك دکمه، كد زیر را بنویسید:



CommonDialog1.Filter = "All Executable files|*.exe|All files|*.*"

CommonDialog1.ShowOpen

Shell CommonDialog1.FileName



حالا اگر برنامه را اجرا كنيد و Open را بزنيد، پنجره Open ویندوز را خواهید دید.

توضيح: ويژگي Filter همانطور كه از نامش برمي‌آيد، براي فیلتر کردن فايل‌هاي قابل رؤیت به كار مي‌رود. در بالا ما دو انتخاب به كاربر داديم كه اولي فقط فايل‌هاي اجرايی را نشان مي‌دهد و دومي تمام فايل‌ها را.

متد ShowOpen هم كه پنجره Open را نشان مي‌دهد.

تابع shell هم كه از توابع داخلي ويژوال بيسيك است، براي اجراي يك برنامه به كار مي‌رود.



حالا يك دكمه ديگر روي فرم بگذاريد. در كليك اين دكمه بنويسيد:



CommonDialog1.ShowColor

Me.BackColor = CommonDialog1.Color



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



حالا اگر دقت كرده باشيد، كدهاي بالا يك اشكال دارند و آن هم اين است كه هنگام زدن Cancel، با error مواجه مي‌شويم. براي رفع اين مشكل كد اول را به شكل زير تغيير دهيد:



On Error Resume Next

CommonDialog1.Filter = "All Executable files|*.exe|All files|*.*"

CommonDialog1.ShowOpen

If Err Then Exit Sub

Shell CommonDialog1.FileName



مي‌بينيد كه دو خط كد اضافه كرديم. در خط اول به كامپايلر مي‌گوييم كه هنگام به وجود آمدن error، اجراي برنامه را قطع نكند و خط بعدي را اجرا كند. بعد از دستور ShowOpen هم بررسي مي‌كنيم كه اگر error به وجود آمده باشد (يعني اگر دكمه Cancel زده شده باشد) اجراي دستورات را متوقف كند.

حالا كد دوم را هم خودتان اصلاح كنيد.



حالا ويژگي‌ها و متدها و ايونت‌هاي مهم اين كنترل را توضيح مي‌دهم.



اول از همه خيالتان را راحت كنم كه اين كنترل، هيچ رويدادي ندارد.

ويژگي CancelError: در صورت فعال بودن، هنگام فشرده شدن Cancel، يك error به وجود مي‌آورد.

ويژگي DialogTitle: نام پنجره محاوره را مشخص مي‌كند. مي‌توانيد به دلخواه خود آن را تغيير دهيد.

ويژگي FileName: آدرس كامل آخرين فايل انتخاب شده را برمي‌گرداند.

ويژگي FileTitle: نام آخرين فايل انتخاب شده را برمي‌گرداند.

ويژگي Filter: قبلاً توضيح داده شد.

متد ShowColor: پنجره انتخاب رنگ ويندوز را نشان مي‌دهد.

متد ShowFont: پنجره انتخاب فونت ويندوز را نشان مي‌دهد.

متد ShowHelp: در صورتي كه براي اين كنترل فايل Helpي مشخص كرده باشد، آن را نشان مي‌دهد.

متد ShowOpen: پنجره Open ويندوز را نشان مي‌دهد.

متد ShowPrinter: پنجره انتخاب چاپگر ويندوز را نشان مي‌دهد.

متد ShowSave: پنجره Save as ويندوز را نشان مي‌دهد.



اگر سؤالي در مورد اين كنترل داشتيد، در نظرات بگوييد. البته از همين حالا بگويم كه من كار كردن با Printer انتخاب شده توسط پنجره ShowPrinter را بلد نيستم؛ اگر سؤالتان در اين مورد بود، نپرسيد. البته اگر خودتان بلد هستيد، لطف كنيد و به من هم بگوييد.

_________________
تصوير


بالا
 مشخصات  
 
 موضوع پست: Re: كنترل Common Dialog
پستارسال شده در: پنج شنبه 5 فروردین 1389, 7:23 am 
آفلاين
کاربر جدید


تاريخ عضويت: سه شنبه 19 آبان 1388, 10:31 am
پست ها : 22
محل سکونت: شیراز
سلام وحید جان
منون بخاطر مطالبی که اینجا میگذاری. تشکر میکنم و سال نو رو هم بهت تبریک میگم. امیدوارم سال موفقیت آمیزی پیش رو داشته باشی.


بالا
 مشخصات  
 
نمايش پست ها از پيشين:  مرتب سازي بر اساس  
ارسال مبحث جديد پاسخ به مبحث  [ 2 پست ] 

تمام زمان ها بر حسب UTC + 3:30 ساعت مي باشد


چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 1 مهمان


شما نمي توانيد مبحث جديدي در اين انجمن ايجاد کنيد
شما نمي توانيد به مباحث در اين انجمن پاسخ دهيد
شما نمي توانيد پست هاي خود را در اين انجمن ويرايش کنيد
شما نمي توانيد پست هاي خود را در اين انجمن حذف کنيد
شما نمي توانيد فايل هاي پيوست در اين انجمن ارسال کنيد

جستجو براي:
انتقال به:  
cron
Powered by phpBB | © phpBB ez
Persian Support By : www.Maghsad.com