سلام دوستان
خسته نباشید
من یک پروژه دارم مینویسم که برای بعضی قسمتهای اون نیاز دارم یک کنترل یا کامپوننت جدید درست کنم
مثلا صفحه دیجیتال یا یک progress bar به شکل دما سنج
کسی میتونه کمک کنه یا یه ebook آموزشی در این رابطه معرفی کنه؟!!؟؟
با تشکر
سلام دوستان
خسته نباشید
من یک پروژه دارم مینویسم که برای بعضی قسمتهای اون نیاز دارم یک کنترل یا کامپوننت جدید درست کنم
مثلا صفحه دیجیتال یا یک progress bar به شکل دما سنج
کسی میتونه کمک کنه یا یه ebook آموزشی در این رابطه معرفی کنه؟!!؟؟
با تشکر
به نام برنامه نویس دل های برنامه نویس
شمام خسته نباشید.
من تازه دارم سی شارپ کار میکن ولی تا حدودی با این سوالت سروکار داشتم.
من از این طریق استفاده میکنم.مثلا کنترل جدید اسمش p هست پس:
progressbar p=new progressbar();بعد از اینکه نوشتی میتونی از p در هرجا استفاده کنی البته باید بصورت سراسری تعریف کنی.منکه کارم با این راه افتاده.
از کدت پیداست که شما از یه کامپوننت موجود یدونه کپی ساختی و دقیقا خصوصیات اون رو به ارث بردی در حقیقت انگار یه ProcessBar رو فرمت بزاری و نامش رو قرار بدی P ...progressbar p=new progressbar();
ایشون نحوه ی ساخت یک کامپوننت رو خواستن یعنی مثلا خودت یه processBar درست کنی و براش متد و ... تعریف کنی و 100 % با یه کد 1 خطی همچین کاری رو نمیشه انجام داد و این کار توسط بحث های پیشرفته ی برنامه نویسی (کلاس و ... ) انجام میشه ...
آخرین ویرایش به وسیله Felony : سه شنبه 03 آبان 1390 در 00:38 صبح
سلام دوست عزیز
منم منظورم همینا بود
من که نگفتم همین یه خط کافیه......
من منظورم این بود که برا دسترسی باید اینو بنویسی بعد بقیه کارا رو انجام بدی
شما نیاز یه یک Composite Control دارید
در این ضمینه شروع به تحقیق کنید
برای شروع ، فکر میکنم این منبع بتونه کمکتون کنه
http://msdn.microsoft.com/en-us/library/a6h7e207.aspx
موفق باشید
آقا از شما دوستان که به فکر ما هستید خیلی ممنون
من شروع کردم به خوندن msdn ولی فکر نکنم به این زودیا موفق بشم...
ضمن این، لطفا اگه کسی یکس از سه کامپوننت زیر رو تو اینترنت دیده یا تو یه مجموعه نرم افزاری دیده بهم آدرس یا لینکشو بده:
1- یک progress bar بصورت عمودی و به شکل دماسنج ...
2- یک صفحه ی دیجیتالی مثل صفحه ی ماشین حساب یا صفحه ی ساعت دیجیتال که یک عدد رو بگیره و نمایش بده ...
3- یک نمایشگر عقربه ای که بشه مثلا یک چیزی مثل اهم متر های عقربه ای رو پیاده سازی کرد ( البته با درجه های خاص خودمون ) ...
در ضمن اگر ebook یا آموزشی غیر از msdn نیز پیدا کردید یه لینک بزارید...
خیلی خیلی ممنون
یا حق
باسلام خدمت اخوی خودم ؟؟؟؟؟؟؟
شما جهت ساختن یک کامپوننت باید یک پروژه جدید بگیرد وازWindowsFormsControlLibrary1 استفاده کنی مثلاَبرای ساختن یک کنترل تکس باکس که هنگامی که موس بر روی آن کلیک می کنه رنگش تغییر کنه ووقتی که فوکوس از دست می دهد رنگ آن به رنگ اول بر گردد با ید کد مربوطه رو در رویداد
,mouseenter-MouseLeave
یک تکس باکس بنویسید وپروژه رو اجرا بدید واز DLL ساخته شده در پروژه های بعدی بجای یک تکس باکس از این استفاده ببری وحال کنی
امید که این موارد بیشتر کیچت نکرده باشه!!!!!!!!!!!!!
این هم کدش :
privatevoid textBox1_MouseEnter(object sender, EventArgs e)
{
((
TextBox)sender).BackColor = Color.Yellow;
}
privatevoid textBox1_MouseLeave(object sender, EventArgs e)
{
((
}
سلام عليکم دوستان
1-فرمت(پسوند)ي که کامپوننت رو ساختيم تو سي شارپ چيه؟
2-براي مثال من يک پروژه از نوع WindowsFormsControlLibrary1 باز ميکنم و کامپوننتم رو طراحي و ميسازم.حالا بايد چه طوري اون کامپوننت رو ذخيره کنم؟
3-چه طور از اون کامپوننتي که ساختم بايد تو WindowsFormsApplication استفاده کنم؟
ببخشيد دوستان که سوالاتم مبتديه چون من تاحالا تو سي شارپ کامپوننت نساختم.
موفق باشيد
سلام، یه آموزش چند خطی:
برای ساخت کامپوننت یک classlibrary میسازید (پسوند dll)
بعد از نوع چیزی که میخواهید بسازید ارث بری میکنید.(مثلا از textbox برای ارث بری میکنید)
و رفرنس های مورد نیازش رو اضافه میکنید.
داخل کلاستون از کلمه this استفاده میکنید.(مثلا this.color.folan)
برای ساخت پروپرتی که تویه محیط گرافیکی نمایش داده میشه میتونید اینجوری عمل کنید:
;bool myBooll اولین حرف رو کوچیک بنویسید!
بعد روی myBool راست کلیک کنید و از گزینه Refactor گزینه Encapsulate کلیک میکنید.
تمام!
برای اینکه مثله گزینه items در پروپرتیتون داشته باشیدباید از string[] استفاده کنید.
ذخیره کردنش هم با build میتونید اون رو تولید کنید!
برای استفاده کردن از کامپوننت، باید اون رو add refrence کنید.(فایل dll)
همونطور ک گفتم: add refrence
من يك نمونه واسط توضيح ميدم در اين نمونه من ميخوام يك پراپرتي بنام FocusBackColor به تكست باكس اضافه كنم كه كاربر بتواند آنرا مقدار دهي كند تا در هنگام ورود(enter) و خروج (validate) اين مقدارها در بك كالر تكست باكس مقدار دهي شود:
براي شروع كافيست يك پروژه جديد بسازيد و سپس يك كلاس جديد بسازيد.
حالا كد زير را در آن كلاس كپي كنيد پروژه را ذخيره كنيد و از آن يكبار Build بگيريد (Ctrl+Shift+B)
حالا به فرم برنامه برگرديد در نوار ابزار ابزاري بنام txtpronet اضافه شده است.
ميتوانيد آنرا روي فرم بگذاريد و از آن استفاده كنيد.
چنانچه قصد داريد اين ابزار بصورت فايل مجزا و بصورت dll باشد كافيست فرم را حذف كنيد و از فايل program.cs خط Application.run را حذف كنيد سپس به properties پروژه رفته و نوع آنرا به ClassLibrary تغيير نام دهيد .حالا يكبار بيلد بگيريد (Ctrl+Shift+B) .فايل dll ساخته شده را از شاخه Relase برداريد.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TextBoxtest
{
//نام كنترلي كه ميخواي درستش كني و نوعي كه داري ازش ارث بري ميكني رو ميذاري
publicpartialclassTxtProNet : System.Windows.Forms.TextBox
{
//تعريف متغيرهاي خصوصي كلاس براي استفاده از آنها در موارد نياز
private System.Drawing.Color FBC = Color.Yellow;
private System.Drawing.Color LFBC;
//نام پراپرتي كه مي خواهيم به كلاس اضافه كنيم
public System.Drawing.Color FocusBackColor
{
//هنگام خواندن مقداري كه قرار است به ما نشان دهد برميگردانيم
get
{
return FBC;
}
//مقداري كه موقع مقدار دهي از كاربر دريافت ميشود را در پراپرتي اعمال ميكنيم
set
{
FBC = value;
}
}
//رويدادهايي كه براي تغيير پراپرتي نياز داريم به اين صورت تعريف ميكنيم
protectedoverridevoid OnEnter(EventArgs e)
{
LFBC = this.BackColor;
//اين خط را براي آن ميگذاريم كه خود رويداد اصلي خراب نشود
base.OnEnter(e);
}
protectedoverridevoid OnValidated(EventArgs e)
{
this.BackColor = LFBC;
base.OnValidated(e);
}
}
}
سلام دوست عزیز
در آدرسی که در زیر نوشته ام می تونیند یک ایبوک خوب درباره آموزش ساخت کامپوننت در سی شارپ، دانلود کنید.
http://www.sadracsharp.blogfa.com/post/52
1.jpg
ProgressBar عمودی و با قابلیت تغییر رنگ
موفق
سلام
اینم عکسش
windowsformscontrollibrary.jpg
خيلي كار سختي نيست. اين چيزايي كه دوستان توضيح دادند بيشتر customize كردن يك كنترل مثلا textbox بود. براي كار شما كه چند كنترل باهم بايد تركيب بشند ميتوني از User Control استفاده كني. روي اسم پروژه در Solution Explorer كليك راست كن و Add User Control بزن تا يك usercontrol اضافه بشه. روي usercontrol ميتوني كنترل هاي كه ميخاي اضافه كني مثلا progressbar و يك textbox.
براي دسترسي و مقدار دادن به progressbar هم يك پروپرتي تعريف ميكني :
Public int Value
{
set {
progressbar1.value=value;
textbox1.text=value.tostring();
}
get{
return progressbar1.value;}
پروژه كه يكبار كامپايل بشه اين usercontrol به بالاي toolbox اضافه ميشه و ميتوني ازش استفاده كني.
فرض كنيم يه دونه با اسم usercontrol1 به فرم اضافه كردي با دستور usercontrol1.Value=10; هر دوي progressbar و textbox مقدار 10 ميگيرند.
سلام
این لینک را ببین
https://barnamenevis.org/showthread.p...8%D8%B1%D8%B3)