کنترل PictureBox
به وسیلهی کنترل PictureBox میتوانید یک تصویر بر روی فرم قرار دهید. کار اصلی این کنترل نمایش دادن یک تصویر است. تمامی کاری که شما باید بکنید این است که عکس مورد نظر خود را انتخاب کنید تا Visual Studio/VCE آنرا به پروژهی شما وارد کند. شما میتوانید از فرمتهای گوناگونی مثل Jpeg ،PNG ،BMP و GIF استفاده کنید.
در جدول زیر برخی از خواص مفید این کنترل را مشاهده میکنید:
خواص | توضیحات | |
ErrorImage | تصویری که در موقع بالا نیامدن عکس مورد نظر به کاربر نمایش داده میشود. | |
Image | عکسی که توسط این کنترل نمایش داده میشود. | |
ImageLocation | مسیر تصویری که توسط PictureBox نمایش داده میشود. | |
InitialImage | تصویری که در هنگام بارگذاری (Load) تصویر اصلی به کاربر نمایش داده میشود. | |
SizeMode | به ما میگوید که تصویر چگونه نمایش داده خواهد شد. این خاصیت مقدار خود را از System.Windows.Forms.PictureBoxSizeMode میگیرد. | |
WaitOnLoad | وقتی مقدار آن برابر با True باشد، همهی کارهای (تراکنشها) فرم را تا زمانی که تصویر به صورت کامل بارگذاری شود مسدود میکند. |
برای نمایش یک تصویر در کنترل PictureBox، چند روش وجود دارد. شما میتوانید به پنجرهی خواص (Properties) رفته و خاصیت Image را پیدا کنید. بر روی دکمهی سمت راست آن کلیک کرده تا پنجرهی Select Resource باز شود.
در پنجرهی باز شده شما دو انتخاب دارید، یکی اینکه عکس مورد نظرتان را که در داخل یک درایو (Local resource) موجود است انتخاب کنید و دیگری اینکه عکس را قبلاً در داخل فایل پروژه (project’s resouce file) قرار دادهاید وارد برنامه کنید.
هر دوی آنها یک دکمهی Import دارند که به شما اجازه میدهند که تصویر مورد نظر خود را به فرم اضافه کنید. وقتی که شما تصویر مورد نظر خود را انتخاب کردید، VS/VCE تصویر را به کنترل و یا منابع پروژه (Project Resource File) اضافه میکند. حال تصویر شما در داخل PictureBox نمایش داده میشود. به یاد داشته باشید که شما میتوانید از خاصیت ImageLocation استفاده کنید که از شما مسیر تصویر مورد نظر در داخل هارد را درخواست میکند. همچنین شما میتوانید از مسیر یک تصویر که بر روی صفحات وب قرار دارد استفاده کنید. ممکن است نمایش عکس با آن چیزی که شما انتظارش را دارید متفاوت باشد. اگر تصویر بزرگتر از سایز کنترل PictureBox باشد، فقط قسمتی از آن نمایش داده میشود. شما میتوانید از خاصیت SizeMode برای تغییر سایز یا مکان تصویر در داخل کنترل استفاده کنید. این خاصیت از مقادیر شمارشی System.Windows.Forms.PictureBoxSizeMode که در جدول زیر مشاهده میکنید استفاده میکند:
نوع شمارشی |
توضیحات | |
Normal | تصویر در قسمت بالا-چپ جای میگیرد، و اگر تصویر از اندازهی PictureBox بیشتر باشد، تصویر برش داده میشود (فقط قسمتی از آن نمایش داده میشود). | |
StretchImage | سایز تصویر را متناسب با اندازه PictureBox تغییر میدهد و تمام عکس را نمایش میدهد. | |
AutoSize | سایز PictureBox را متناسب با اندازهی تصویر تغییر میدهد و قسمتی از عکس را نمایش میدهد. | |
CenterImage | تصویر در وسط PictureBox قرار میگیرد. اگر سایز تصویر از سایز PictureBox بیشتر باشد، تصویر برش داده میشود (فقط قسمتی از وسط عکس در آن نمایش داده میشود). | |
Zoom | همه عکس را طوری نمایش میدهد که شکل آن در کنترل تغییر نکند مثلاً کشیده نشود. |
رویداد پیشفرض این کنترل، رویداد Click است، و زمانی رخ میدهد که بر روی عکس یا کنترل کلیک شود.
سلام میخوام وقتی در حال اجرای برنامه روی تصویر کلیک شد یک فرم دیگه باز بشه که تا اینجاشو انجام دادم فقط نمیتونم اون تصویر که روش کلیک کردمو تو این فرم بیارم یعنی باهم لینکشون کنم
سلام، ممنون میشم سوالتونو تو بخش پرسش و پاسخ سایت مطرح بفرمایید
اگه میخوای دقیقاً مث فرم قبلیت فرم جدید درست کنی میتونی این کد رو بنویسی برای مثال
Form1 f1 = new Form1();
f1.Show();
سلام.آقا من وقتی که یک تصویر لایه باز روی PictureBox میزارم اون فضای لایه باز رو در نظر نمیگیره (یعنی اطرافش سفید میشه).لطفا راهنمایی کنید.ممنون
سلام منظورتون از تصویر لایه باز چیه؟
برای اینکه پشتش شیشه ای بشه باید تصویرتون حتما فرمتش png باشه.
بک کالر بیکپر باکس رو هر رنگی خواستی بکن
با سلام خدمت همه دوستان؛ میخواستم یه سوالی بپرسم که ایا میشه یک تصویر را درون یک تصویر دیگر ادغام کرد در برنامه ی سی شارپ؟ یعنی همونکاری ک برای ادغام و ترکیب تصاویر در فتوشاپ انجام میشه همونکار توی سی شارپ عملیاتی هست؟ دقیق تر بگم Double Exposure تو سی شارپ هست؟
سلام خسته نباشید
چطور میتونم به تصاویرم لینک بدم
مثلا با زدن روی تصویر گوگل مرورگر باز بشه و وارد سایت گوگل بشن!؟
سلام
فضای نام زیر رو هم وارد کنید :
using System.Diagnostics;
سلام.یک سوال داشتم!چجوری زمانی که بک گراند باتن را بر روی پیکچر باکس می اوریم نام عکس مورد نظر هم زیر آن بیاید؟؟؟؟؟
سلام، اگه فقط نام عکس مد نظرتونه چرا از tooltip استفاده نمی کنید؟ در غیر اینصورت سوالتونو کاملتر و همراه با عکس تو انجمن مطرح بفرمایید ممنون میشم.
با سلام من می خواهم کنترل پیکچر سی شارپ فقط قسمت رنگی عکس را نمایش دهد و باقی پیکچر پاک شود به طوری که زیر پیکچر نشان داده شود.
با تشکر
سلام، متوجه سوالتون نشدم، ممنون میشم در بخش انجمن مطرح بفرمایید
سلام ممنون از مطالب خوبتون .
اگه میشه درمورد مشخصه tag هم صحبت کنید . ممنون
سلام، ممنون از لطفتون
tag شبيه يک متغير درونى در کنترل است که داده هاى موردنياز را ذخيره کرده و تا پايان برنامه به صورت
پايدار نگه داری می کند.
سلام ، منظورتون اینه که PictureBox تمامی عرض و طول فرم رو اشغال کنه ؟ با این فرض باید از خاصیت Dock اون استفاده کنید .
همچنین خاصیت SizeMode رو روی StretchImage تنظیم کنید .
سوالات بعدی خودتون رو در بخش فرم سایت بپرسید.متشکرم
موفق باشید
سلام
ببخشید یه سوال ایا پیکچر باکس یک عکسی که سایزش کوچک است را به سایز بزرگتر و تمام صفحه میتونه تبدیل کنه ؟ چجوری؟
سلام
یه سوال داشتم … البته اول تشکر میکنم بابت این سایت خوب … کلی چیز یاد گرفتم !
من عکسم رو تو هنگام اجرای برنامه با استفاده از تابع کی دان (کلیدهای جهت نمای کی بورد) حرکت میدم … چطور بهش بفهمونم تا یه مختصات خاص بیشتر نره یا اگه به یه عکس دیگه (تو فرم) رسید دیگه حرکت نکنه ؟
در واقع یه بازی ساده ماشین هستش .
سلام
باید کدش رو بنویسیم و بدیم خدمتتون
لطفاً در تاپیک مربوطه در انجمن مطرح کنید تا پاسختون رو بدیم ، چون اینجا برای درج کد راحت نیستیم
موفق باشید