PDA

View Full Version : طراحی فرم در زمان اجرا



razavi_university
جمعه 23 فروردین 1387, 00:12 صبح
سلام
من می‌خوام برنامه‌ای شبیه به مثلا Multi Media Builder بنویسم. اونهایی که این نوع برنامه رو می‌شناسند، که ویژگی‌هاش رو می دونند واسه اونهایی که نمی‌دونند، برنامه‌ای به این سبک باید:
در زمان اجرا امکان طراحی را به کاربر بدهد(مثلا اضافه کردن TextBox و Button)
این کنترل‌ها ی اضافه شده باید دارای خصوصیات اختصاصی مربوط به خود باشند
بتوانیم پروژه‌باز (شامل چندین فرم) این برنامه را به صورت یک فرمت ذخیره کرده و مجدد باز کنیم
قابلیت خروجی exe را داشته باشد.
شما چه راه‌حل‌هایی(Soloution) برای نوشتن این پروژه ارائه می‌کنید؟ ؟ ؟

gdevnb
جمعه 23 فروردین 1387, 00:49 صبح
یه سر به کدهای Sharp Develop بزنید فکر کنم برای حالت دیزانرتون بتونید از کدهاش استفاده کنید. شما اول باید کنترلهای اختصاصی که مد نظرتون هست رو طراحی کنید و خصوصیات مورد نظرتون رو به این کنترلها اعمال کنید(یه سری یوزر کنترل).فکر نمی کنم تو زمینه کنترلها مشکلی پیش بیاد. چون معادل کنترلهای MMB رو تو دات نت داریم (تو همین سایت هم که خودتون استادید)در ضمن به نظر من می تونید از روشی که خود VS استفاده میکنه هم بهره ببرید
یعنی مشخصات کنترله و فرم رو تو یه فایل دیزاینر (تو یه فایل xml)ذخیره کنید .
خروجی exe رو هم که با کمپایل از طریق کمپایلر سی شارپ بدست میاد.

razavi_university
جمعه 23 فروردین 1387, 01:09 صبح
ممنون از توجهت


در ضمن به نظر من می تونید از روشی که خود VS استفاده میکنه هم بهره ببرید
یعنی مشخصات کنترله و فرم رو تو یه فایل دیزاینر (تو یه فایل xml)ذخیره کنید .
خروجی exe رو هم که با کمپایل از طریق کمپایلر سی شارپ بدست میاد.
من هم فکر کردم بشه فرم رو سریالایز کرد و باز لود کرد (این روش واسه کل پروژه هم میتونه باشه؟)

کامپایلر #C که در زمان طراحی نمیتونه کامپایل کنه (منظورت استفاده از کلاسهای مربوط به این کاره؟)

gdevnb
جمعه 23 فروردین 1387, 02:02 صبح
من هم فکر کردم بشه فرم رو سریالایز کرد و باز لود کرد (این روش واسه کل پروژه هم میتونه باشه؟)

فایل csproj.* یه پروژه رو با notepad باز کن .کل مشخصات مربوط به یه پروژه رو از قبیل رفرنسها , ریسورسها , فرمها و ... در خودش ذخیره میکنه. این میتونه برای ذخیره و لود کل پروژه بدرتون بخوره(من فرض کردم که فقط یه سلوشن دارید).



<EmbeddedResource Include="Forms\frmLogin.resx">
<DependentUpon>frmLogin.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>



کامپایلر #C که در زمان طراحی نمیتونه کامپایل کنه (منظورت استفاده از کلاسهای مربوط به این کاره؟)
منظورم CSC هستش.
منظور شما رو من خوب متوجه نشدم. در زمانی که شما قصد کمپایل پروژه رو داشته باشید اطلاعات رو ذخیره می کنید و با همون دستور بالا برنامه رو کمپایل میکنید.