مشاهده نسخه کامل
: ListView در سی شارپ
magic1362
25-01-2007, 21:06
با سلام
من یه برنامه مثل Task Manager ويندوز نوشتم. چطوری می تونم ليست Process ها رو آپديت کنم بدون اينکه حالت فعلی ListView تغيير بکنه؟ یعنی در حالی که یک گزينه از ListView انتخاب شده آپديت بشه و تو همون حالت بمونه. درست مثل ويندوز.
ممنون
سلام.
احتمالا شما برای Update کردن لیست Process ها از متود Clear در ListView استفاده میکنید که
دچار چنین مشکلی شدید.
برای Update کردن یک مقدار در ListView به شکل زیر میتونید عمل کنید :
از کلاس ListViewItem برای اضافه کردن مقادیر جدید به ListView استفاده کنید.یه مثال خیلی ساده براتون میذارم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این متود رو در constructor کلاس form قرار بدید. یک Timer به برنامتون اضافه کنید و متود زیر
رو در Timer Evevt قرار بدید.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
میبیند که مقدار counter تغییر میکنه بدون اینکه حالت قبلی ListView تغییر کنه.
فکر کنم باید چند تغییر در برناتون بدید.برنامتون باید لیست process ها رو چک کنه که آیا نیاز به تغییر دارن یا نه.
اگه لیست همچنان مثل قبل باشه نیاز به تغییر نداره.اما اگه process جدیدی ایجاد شده , تنها این process
جدید باید به لیست اضافه بشه.این کار رو میتونید با مقایسه Process ID هایی که در ListView هستند با لیست
Process ID سیستم انجام بدید.
اگه مشکلی پیش اومد اطلاع بدید.
magic1362
31-01-2007, 09:54
سلام
دوست عزیز ممنون از راهنمایی تون. ولی یه مشکلی وجود داره . اگر یک process کارش تموم بشه و بعد از اون یه process دیگه اجرا بشه که ID اون همون ID فرآیند قبلی باشه ListView آپديت نمیشه. ممنون میشم اگه راهنمایی کنید
دوباره سلام.
مسئله ای که شما مطرح میکنید احتمالش خیلی کم هست. شمادر کمتر از هر ثانیه باید یک بار لیست رو چک کنید.احتمال اینکه در یک لحظه process ی end بشه و process دیگه ای با همون ID شروع به کار کنه بسیار کم
هست. (تا حالا به چنین مسئله ای برخورد نکردم.) اگه براتون اینقدر مهم هست میتونید علاوه بر چک کردن ID ها
, همزمان اسم Process رو هم چک کنید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.