PDA

View Full Version : مشکل تایمر در لیست ویو



acashkanmh
یک شنبه 25 اسفند 1398, 19:01 عصر
با سلام
151466

می خواستم وقتی که دکمه شروع رو زدم تو لیست ویو تایمرش شروع به حرکت کنه

لطفا اگه می تونید کمکم کنید

ShayanFiroozi
یک شنبه 25 اسفند 1398, 20:04 عصر
سلام ،

شما ننوشتین که در پیاده سازی تایمر مشکل دارین یا دسترسی به عناصر GridView ،

به هر حال در خصوص دسترسی به GridView از این روش استفاده کنین :



data_car_list.SelectedRows[0].Cells[3].Value = "abcd";


شماره 0 همون ایندکسه هستش که میتونی تغیرش بدی ، شماره 3 هم طبق DataGrid شما ایندکس ستون Timer هستش

acashkanmh
یک شنبه 25 اسفند 1398, 20:37 عصر
ببخشید
من می خواهم تایمر رو تو لیست ویو (listview) نمایش بده نه تو دیتا گرید ویو (data grid view)
بعدش هم این روش مقدار ثابتی تو دیتا گرید ویو نشون می ده من می خواهم تایمر شروع به حرکت کنه

ShayanFiroozi
یک شنبه 25 اسفند 1398, 22:53 عصر
خوب اگر شما تایمر رو پیاده سازی کردین که راحته ، به ازای هر رکورد یا شخص یه شی تایمر به صورت داینامیک ایجاد کنین و راه اندازیش کنین
برای دسترسی به لیست ویوو هم از این کد نمونه استفاده کنین :



if(listView1.SelectedItems != null)
{
ListViewItem item = listView1.SelectedItems[0];
item.SubItems[3].Text = "yourTimerTextHere";
}

acashkanmh
دوشنبه 26 اسفند 1398, 07:48 صبح
1
2
3
4
5
6


if(listView1.SelectedItems != null)
{
ListViewItem item = listView1.SelectedItems[0];
item.SubItems[3].Text = "yourTimerTextHere";
}






تو این کدی که نوشتید باید حتما یک ردیف رو انتخاب کرد اما من نمی خوام یک ردیفو انتخاب کنم
وقتی که دکمه شروع رو زدم textbox1.text و textbox2.text و textbox3.text و تایمر به لیست ویو اضافه می شوند ولی تایمر ایستاده حرکت نمی کنه

ShayanFiroozi
سه شنبه 27 اسفند 1398, 08:58 صبح
در خصوص ایندکس شما میتونین از آخرین ایندکس استفاده کنین (در واقع آخرین ایندکس همیشه همون شماره ایه که شما همین الان اضافه کردین).

در خصوص تایمر ، خوب مشخصه که خود به خود حرکت نمیکنه ! یکی باید اونو آپدیت کنه ، شما بهتره سورس کاملتون رو بذارین تا ببینیم از چه روشی دارین پیش میرین

acashkanmh
سه شنبه 27 اسفند 1398, 11:27 صبح
سلام

این هم از سورس کد :

151473


من فقط میخوام تایمره تو لیست ویو شروع به حرکت کنه

ShayanFiroozi
سه شنبه 27 اسفند 1398, 15:02 عصر
خوب شما دارین Label4 رو مدام آپدیت میکنین ،

حالا مقدار Label4.Text رو میدیم به آخرین آیتم لیست ویوو ،



listView1.Items
[listView1.Items.Count - 1].SubItems[3].Text = Label4.Text;


ولی بازم به مشکل بر میخورین ، چون این کد آخرین آیتم اضافه شده رو آپدیت میکنه ،

شما بفرمایید هدف این نرم افزار چیه ، احساس میکنم از روش بهتری میشه استفاده کرد. مگر اینکه فقط 1 نفر و یک تایمر داشته باشین !

acashkanmh
سه شنبه 27 اسفند 1398, 18:11 عصر
تو این برنامه نام و نام خانوادگی و دریافتی رو دریافت کنه و بعدش تو یک لیست ویو همراه با یک تایمر که امکان توقف و ریست و ادامه داشته باشه نمایش دهد

یک تغییری تو فرم و سورس کد این پروژه دادم

151474
این هم سورس کد
151475

خروجی تایمر رو تو لیست ویو گذاشتم
اگه روش بهتری دارید لطفا بفرمایید که من چه کار کنم تا این پروژه کامل بشه
ممنون

ShayanFiroozi
سه شنبه 27 اسفند 1398, 18:17 عصر
اگر یه پروژه تست هستش و یک نفر قراره براش تایمر اجرا بشه مشکلی نداره ، اما اگر هدف نرم افزاری هست که بخواین به مشتری بدین باید از اول نوشته بشه ، بستگی به این داره که از این تایمر میخواد چه استفاده ای بشه

acashkanmh
سه شنبه 27 اسفند 1398, 18:32 عصر
تایمر تو این پروژه قراره تو پروژه مدیریت گیم نت استفاده بشه
وقت هر مشتری برای استفاده از سیستم محاسبه بشه

ShayanFiroozi
سه شنبه 27 اسفند 1398, 18:59 عصر
خوب پس با این کد و طراحی شما فقط یک مشتری میتونین داشته باشین !

acashkanmh
سه شنبه 27 اسفند 1398, 19:03 عصر
چه جوری میشه که چند تا مشتری داشته باشم

اگه نمونه کد دارید بفرستید

ShayanFiroozi
سه شنبه 27 اسفند 1398, 22:28 عصر
این دیگه میشه یه پروژه !!

acashkanmh
چهارشنبه 28 اسفند 1398, 09:43 صبح
چگونه میشه تایمر رو برای چند نفر محاسبه کرد من فقط مشکلم با اون تایمر هستش بعدش برای آپدیت کردن لیست ویو چه باید چه کاری انجام داد
بقیه پروژه هم خودم درست می کنم

ShayanFiroozi
چهارشنبه 28 اسفند 1398, 09:53 صبح
راه های زیادی هست ، استفاده از لیست ها ، آرایه ها

ولی شما چون تایمر ها همشون زمان تیکشون یکی هست میتونی با یه دونه تایمر برنامه نویسی کنی ولی توی اون تایمر باید مدیریت کنی کدوم مشتری استارت خورده ، کدوم Pause شده و کدوم Stop شده

acashkanmh
چهارشنبه 28 اسفند 1398, 10:07 صبح
لطفا میشه بیشتر توضیح بدهید تا منطورتون رو بفهمم یا یک نمونه کد برای تایمر

the king
چهارشنبه 28 اسفند 1398, 15:08 عصر
لطفا میشه بیشتر توضیح بدهید تا منطورتون رو بفهمم یا یک نمونه کد برای تایمر

151477

151478

acashkanmh
چهارشنبه 28 اسفند 1398, 17:04 عصر
ممنون

متشکرم واسه نمونه کدی که دادید


تو این تصویر $ رو خطا می گیره
151480

برای رفع این ارور چه کار کنم؟؟؟

the king
چهارشنبه 28 اسفند 1398, 18:16 عصر
ممنون

متشکرم واسه نمونه کدی که دادید


تو این تصویر $ رو خطا می گیره
151480

برای رفع این ارور چه کار کنم؟؟؟
دو تا راه حل دارید :
یا نسخه ویژوال استدیو تون رو ارتقاء بدید تا #C نسخه 6 رو ساپورت کنه و قابلیت interpolated string (همون رشته هایی که با "$ شروع میشوند) رو داشته باشه.

$"{time.Hours:00}:{time.Minutes:00}:{ time.Seconds:00}"

یا اون interpolated string رو با نمونه معادل اش بدون استفاده از این قابلیت مثلا با کمک string.Format جایگزین کنید :

string.Format("{0:00}:{1:00}:{2:00}", time.Hours, time.Minutes, time.Seconds)

acashkanmh
چهارشنبه 28 اسفند 1398, 18:30 عصر
ممنون از کمک شما