PDA

View Full Version : ساخت اتوماتیک فرم ها در C#



computer-mag
شنبه 23 شهریور 1392, 18:47 عصر
با سلام خسته نباشید
سناریویی که می خام ازتون واسه اجراش راهنمایی بخوام توی وب بهش میگن eForm یا فرم ساز که می خام این کار رو در وینوز اپلیکیشن انجام بدم

من می خام که یوزر برنامه من مثل خود ویژوال استودیو بتونه از طریق موتوری که ما در اختیارش میزاریم بتونه به برنامه خودش فرم اضافه کنه به اون فرم یک سری کنترل اضافه کنه و دکمه بزاره و اینجور چیزها و عملیات های پشت دکمه هارو معرفی کنه نه که مثل ما برنامه نویس ها بشینه کد بزنه فقط کنترل ها رو سر جاشون بزار با دیتابیس ارتباط بده و مشخص کنه کار هر دکمه چیه و اون عملیات انجام بشه. برای این کار ما باید یه سری کار رو انجام بدیم
1. ساخت فرم که شامل فایل های From.csو Form.Designer.csو Form.resx هست
2. افزودن کنترها به فرم های ساخته شده
3. معرفی عملکر به دکمه ها
4. ذخیره کامل همه این ها در دیتابیس
5. جنریت کردن فرم ها و متعلقاتشون با استفاده از دیتاهایی که برای هر فرم و کنترل و باتن در دیتابیس ذخیره شده است.

این مبحث بسیار حیاتی هستش و میتونه کمک زیادی به برنامه نویس ها بکنه خواهش میکنم هر کسی بلده این کارارو با جدیت به من و مابقی برنامه نویس ها کمک کنه تا این کار انجام بشه جتسجوهایی کردم که فقط برای asp.net بود و برای ویندوز اپلیکیشن ها این مباحث رو پیدا نکردم
اگه بتونیند راه حلتون رو بایه سمپل خوب هم معرفی کنید که خیلی بهتر میشه:تشویق::قلب:

مرسی

parvizwpf
شنبه 23 شهریور 1392, 19:08 عصر
خب بهتره برید چند نوع جنریتور به این شکل توی کد پروجکت ببینید..

computer-mag
شنبه 23 شهریور 1392, 19:10 عصر
خب بهتره برید چند نوع جنریتور به این شکل توی کد پروجکت ببینید..

من سرچ کردم پیدا نگردم میتونید چندتاشو لینکشو واسم بزارید؟

mohsengoodarzidana
شنبه 23 شهریور 1392, 21:34 عصر
بر عکس تصورت کاری که می خوای انجام بدی چندان هم سخت نیست به این کار در اصطلاح گفته می شود dynamic programming
در سی شارپ مبحثی به همین نام هم داریم یک مثال برات می زنم ببین جواب کارتو می ده یا نه
TextBox TB = new TextBox();
this.Controls.Add(TB);
خودت می تونی باتوجه به توانایی های دات نت یک کد جنریتور بنویسی موفق باشی

computer-mag
دوشنبه 25 شهریور 1392, 16:59 عصر
بر عکس تصورت کاری که می خوای انجام بدی چندان هم سخت نیست به این کار در اصطلاح گفته می شود dynamic programming
در سی شارپ مبحثی به همین نام هم داریم یک مثال برات می زنم ببین جواب کارتو می ده یا نه
TextBox TB = new TextBox();
this.Controls.Add(TB);
خودت می تونی باتوجه به توانایی های دات نت یک کد جنریتور بنویسی موفق باشی

این کار رو کردم ولی تصور به سختی هم ندارم چون کار خاصی نیست ولی شیوه ارتباط با دیتابیس و نوع ذخیره سازی آنها در دیتابیس و همچینین اختصاص دادن کنترل های ایجاد شده با رویدادی که رو آ ن ها کار کند مد نظر است که بلد نیستم این قسمت را مثلا دکمه ای دارم که می خوام با کلیکروی اون تمام اطلاعاتی تکست باکس ها و دیگر کنترل هایی مکه روی فرم گذاشتم رو توی دیتابیس ذخیره کنم

sinaprog
دوشنبه 25 شهریور 1392, 17:23 عصر
منظورت اینه

foreach (Control cr in this.Controls)
{
if (cr is TextBox)
txt += cr.Text + ",";
}

computer-mag
دوشنبه 25 شهریور 1392, 17:30 عصر
منظورت اینه

foreach (Control cr in this.Controls)
{
if (cr is TextBox)
txt += cr.Text + ",";
}

نه کدی که شما نوشتی همه کنترل های فرم رو چک میکنه اگه تکس باکس بودن محتواشونو توی یه متغیر می چسبونه به هم من میخام برنامه اتوماتیک بفهمه این تکس باکس باید مقدارش در فیلد خاصی ذخیره بشه بدون کد نویسی میخام یه جور انجین درست کم که دیگه نیاز نباشه برای برنامه های عادی دوباره کد بزنیم

sinaprog
دوشنبه 25 شهریور 1392, 18:06 عصر
List<string> name=new List<string>();
List<string> value=new List<string>();

foreach (Control cr in this.Controls)
{
if (cr is TextBox)
{
name.Add(cr.Name);
value.Add(cr.Text);
}
}
string query="insert into table1(";
foreach (string n in name)
query += n + ",";
query = query.Substring(0, query.Length - 1);
query += ") values(";
foreach (string v in value)
query += v + ",";
query = query.Substring(0, query.Length - 1);
query += ")";