PDA

نسخه کامل مشاهده نسخه کامل : 3 تا سوال ( 2 تا لیست ویو و یک هم در مورد اذان )



shadmehrshadow1
05-02-2011, 18:34
سلام
1- ما یه لیست ویو داریم که مثلا 5 تا ستون داره و مثلا 10 سطر .میخواستم ببینیم میشه کاری کرد که وقتی ما روی مقدار ستون سوم ازسطر دوم کلیک می کنیم . مقدار این خانه به حافظه کلیپ بورد بره ؟

2- چه طور میشه اطلاعات یه لیست ویو رو در جایی ذخیره کرد و دوباره بازیابیش کرد .
و بشه ویرایشش کرد و این ویرایش رو هم ذخیره کرد . اینم بگم که ممکنه لیست ویو داری چند ستون هم باشه .

3- این طور که من فهمیدم اذان های اهل تسنن با ما فرق داره . یه برنامه هم برای محاسبه ادذان های اهل تسنن میخوام .
فکر کنم نماز عصرشون فرق بکنه . البته یه جا هم خوندم که گوگل یه نرم افزار منبع باز برای محاسبه این کار ارایه داده ولی پیدا نکردم .

خیلی خیلی ممنون میشم کمکم . کنید .

shadmehrshadow1
09-02-2011, 10:54
لطفا یکی کمک کنه .!

anvar.net
09-02-2011, 15:45
عملا در کنترل لیست ویو چیزی به اسم Cell که متعلق به ستون و ردیف خاصی باشه ما نداریم, در ثانی این کنترل فقط برای لیست ایتم هایی بکار می ره که زیر ستون هاش برای تعیین ایندکس ستون چندان مهم نیستند لذا زمانی از این کنترل استفاده می کنن که ایتم زیر ستون چندان مهم نباشه و فقط همان ایندکس ستون اصلی کارشون رو راه بندازه. در ثانی , شما در این کنترل قدرت انتخاب ستون هایی به جزء ستون اول رو ندارید و رویداد کلیک یا انتخاب ستون هایی با ایندکس 1 و بیشتر وجود نداره که بتونیم باش سلولی رو در ستون های بیشتر از صفر انتخاب و حتی کلیلک کنیم مشکل سوم عدم ویرایش ستون های 1 و بیشتر در خود کنترل لیست ویو هست. یعنی فقط ستون اول با ایندکس صفر قابلیت ویرایش در زمان اجرا رو داره. لذا گرچه شما می توانید لیست ایتم های مورد نظر خودتون رو در این کنترل نمایش بدید اما قدرت ویرایش برای تمامی ستون ها موجود نیست. البته شاید بتوان این مشکل را با ویرایش مستقل هر ردیف از داده ها بصورت جدا انجام داد یه مشکل دیگه واسه این کنترل اینه که برخلاف سایر کنترل های داده چیزی به اسم دیتاسورس ندازه و برای نمایش اطلاعات باید بصورت دستی از دیتاریدر استفاده کنی و تک تک ردیف ها رو خونده و در مجموعه ایتم ای لیست ویو بذاری. با تمام موارد بالا به نظر من کنترل لیست ویو چندان مناسب هدف دلخواه شما نیست اما برعکس آن کنترل دیتاگرید ویو قابلیت های مناسب و رویدادهای خوبی برای این هدف دارد. بخوبی اطلاعات در داخلش قابل ویرایش هستند با منابع داده ای مختلف براحتی پر می شود و ..................... اما واسه کلیپ بورد می تونی از کلاس Clipboard موجود در فضای نام System.form استفاده کنی که توابع زیادی برای خواندن و ست کردن مقادیر موجود در کلیپ بورد رو داره مثلا برای خوندن Clipboard.Gettext , و برعکش برای گذاشتن مقادیر در کلیپ بورد از Settext و سایر توابع با ارگومان های مختلف می تونی استفاده کنی واسه سوال آخرت هم من اطلاعی ندارم , بهتره تو انجمن های نجوم یا مذهبی دنبالش باشی

shadmehrshadow1
09-02-2011, 18:30
حالا میشه همین چیزایی رو که گفتم رو چه جوری میشه با دیتاگرید انجام داد رو بگید .
سوال سوم چی نمیدونید ؟

anvar.net
11-02-2011, 00:24
برای ذخیره اطلاعات می تونی از پایگاه داده ها استفاده کنی (قبلا توضیح دادم می تونی سرچ کنی)
کنترل دیتاگرید خاصیتی به نام Datasource داره که م یتونی دیتاست رو بهش پیوند بدی جدولی هم که قراره اطلاعاتش نشون داده بشه در خاصیت datamember قرار داده میشه
Dtatagridvie1.datasource=dataset1
datagridview1datamember=table1


حالا برای گرفتن سلول م یتونی از رویداد Cell click استفاده کنی که زمان کلیلک بر روی هر سلول اتفاق می افته.
حالا م یتونیم ایندکس ستون و ردیف ها رو بگیرم
E.rowindex و e.columnindex

برای ست کردن مقدار خاص هم می تونیم از متد Settext کلاس clipboard استفاده کنیم. من دقیقا نفهمیدم منظور شما در سوال یک چیه (آیا فقط مقادیر موجود در یک سطر یا ستون باید به کلیپ بورد بره یا نه)

با توجه به ایندکس ستون و ردیف که م یتونیم با کلیک بر روی هر سلول بگیریم می تونیم مقادیر موجود در این سلول ها رو بگیریم
مثلا مقدار موجود در سلولی رو که کاربر کلیک کرده بصورت زیر می گیریم
AA=datagirdview1.Item(e.ColumnIndex, e.RowIndex).Value.ToString


حالا که مقدار موجود در سلول رو داریم می تونیم در داخل کلیپ بورد ست کنیم
clipboard.settext(AA(

البته قبل از هر چیزی باید نوع فایل اطلاعات رو مشخص کنی : بانک های اطلاعاتی یا فایل مثلا XML

اگه از بانک اطلاعاتی استفاده می کنی باید از تایپ دیتاست استفاده کنی تا بتونی از داخل دیتاگرید بانک رو آپ دیت کنی

اگه از فایل Xml استفاده می کنی می تونی واسه لود اطلاعات از دیتاست استفاده کنی (در زمان اجرا) اما نحوه آپدیتش رو نمی دونم چه جوریه

یه مقدار واضح تر بگو شاید بشه کاری کرد