PDA

View Full Version : تاپیک سوال و رفع اشکال تاپیک "آموزش رسم نمودار در سی شارپ به وسیله MSCHART"



sajadjamalian
یک شنبه 10 بهمن 1389, 22:34 عصر
[ایجاد شده توسط مدیر بخش]
تاپیک سوال رفع اشکال مربوط به تاپیک آموزشی زیر
آموزش رسم نمودار در سی شارپ به وسیله MSCHART (http://barnamenevis.org/showthread.php?272474-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%B3%D9%85-%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-%D8%A8%D9%87-%D9%88%D8%B3%DB%8C%D9%84%D9%87-MSCHART)

mrsalam
دوشنبه 11 بهمن 1389, 15:49 عصر
اسم رفرنسش چیه؟
نصب کردم ولی نمیتونم تو رفرنس اضافش کنم
چه باید کرد؟

sajadjamalian
دوشنبه 11 بهمن 1389, 16:08 عصر
توی سایت مایکروسافت دوتا فایل نصبی باید پیدا کنی یکی خود MSCHART و دیگری کنترلش برای اضافه شدن به toolbox، اگر هردوتاش رو نصب کنی بطور خودکار به toolbox اضافه میشه.
فکر میکنم اسم فایل دوم MSChart_VisualStudioAddOn.exe باشه.

mrsalam
سه شنبه 12 بهمن 1389, 09:34 صبح
(6)
یه خاصیت جالب برای نمودارهای MSCHART این هست که میتونیم روی اونها zoom داشته باشیم،...
متشکرم
ننوشتین که درصد زوم رو چطوری میشه تنظیم کرد؟

ahrimaneahurai
سه شنبه 12 بهمن 1389, 10:09 صبح
با اجازه آقای جمالیان دوستانی که نمونه کدهای بیشتری می خوان به این لینک برن
http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=4418

sajadjamalian
سه شنبه 12 بهمن 1389, 10:30 صبح
متشکرم
ننوشتین که درصد زوم رو چطوری میشه تنظیم کرد؟

شما میتونی با کشیدن موس روی محیط نمودار اون رو زوم کنی،
و هم چنین با کد زیر میتونی زوم رو تعیین کنی:

chartArea1.AxisX.ScaleView.Size = 50;

shimaya64
شنبه 30 بهمن 1389, 13:00 عصر
سلام آقای جمالیان،خیلی ممنون از آموزشتون.
من چند تا سوال از خدمتتون داشتم ممنون می شم اگه زودتر کمکم کنید.
1.من هر دو فایلو دانلود کردم ونصب کردم ،واز ویژوال 2008 تحت ویندوز استفاده می کنم.اما در Toolbox چیزی نشون نمیده. چیکار باید بکنم.
2.بعدش این کدهارو من در کجای برنامه وارد کنم،ایا باید یک فرم جدا Add کنم و بعد در Load برنامه بنویسم.

sajadjamalian
سه شنبه 09 فروردین 1390, 20:39 عصر
سلام دوست عزیز
اولا ببخشید که با تاخیر جوابتون رو میدم، من حدود یک ماه از دنیای مجازی دور بودم،
اگر با نصب هر دو فایل نمودار به تولباکس اضافه نمیشه باید روی تولباکس کلیک راست کنی و توی قسمت choose item و بعد توی قسمت .net framework component علامت chart رو بزنی تا به تولباکس اضافه بشه،
بعد در مورد کدها هم باید بگم شما هم میتونی توی load فرمتون اضافه کنید و هم میتونید به عنوان متد ازشون استفاده کنید و توی load فرمتون متد رو فراخونی کنید.

khanumi
چهارشنبه 21 اردیبهشت 1390, 08:20 صبح
سلام، از آموزش خوبتون ممنونم، اما من هيچ خروجي نگرفتم موقع اجرا از خط آخر خطا ميگيره،
this.Controls.AddRange(new System.Windows.Forms.Control[] { this.chart1 });
تو مشخصات هم كه مقدار دهي ميكنم بازم هيچي نشون نميده، ممنون ميشم كمكم كنيد

milad_tensy
پنج شنبه 22 اردیبهشت 1390, 03:40 صبح
سلام ، واقعاً ممنون با این توضیح قشنگ و جامع . البته بعضی جاها خیلی کوچولو اشتباه تایپی رخداده ولی در کل بی نهایت ممنون آقا سجاد عزیز

فقط اگر هنوز مهلت این تاپیک تموم نشده می شه بگی این چارت رو چطور به SQL وصل کنیم ؟؟؟

بینهایت ممنون

sajadjamalian
جمعه 23 اردیبهشت 1390, 11:05 صبح
سلام ، واقعاً ممنون با این توضیح قشنگ و جامع . البته بعضی جاها خیلی کوچولو اشتباه تایپی رخداده ولی در کل بی نهایت ممنون آقا سجاد عزیز

فقط اگر هنوز مهلت این تاپیک تموم نشده می شه بگی این چارت رو چطور به SQL وصل کنیم ؟؟؟

بینهایت ممنون

سلام دوست عزیز،
ممنون شما لطف دارید،
توی تاپیک 8 و 9 توضیحات اتصال به دیتابیس رو دادم، اگه کافی نیست بگو بیشتر توضیح بدم،
موفق باشی.

Emerlad_64
پنج شنبه 05 خرداد 1390, 11:03 صبح
واي كلي طول كشيد تا تونستم mschartرو به ويژوال استديوم اضافه كنم يعني بايد حذفش كنم و واينو كه شما گفتيدو اضافه كنم ،لطف ميكنيد ادرس لينك دانلودشو دقيق بگيد،كدنويسيش كه فرقي نميكنه؟يعني ميتونم از همين آموزشي كه شما لطف كرديدو گذاشتيد براي تحت وب هم استفاده كنم؟خواهش ميكنم اگه ميتونيد راهنمايي كنيد 2 ماه دارم تو وب در مورد نمودار گيري سرچ ميكنم ،از هر چي بگيد استفاده كردم نشدم ،:گریه:شما از روش نمودار گيري تحت وبmschart خودتون استفاده كرديد?mersiii

Emerlad_64
پنج شنبه 05 خرداد 1390, 11:11 صبح
سايت مایکروسافت همون سايتي كه mschart تحت ويندوزو گفتيد ازونجا دانلود كنيم؟ من گشتم همون يه ابزاريو كه شما گفتيدو داشت نه تفكيكي براي وب و ويندوز؟

l7i7l7
جمعه 03 تیر 1390, 20:14 عصر
با سلام و تشكر از دوست عزيزمون sajadjamalian

از بابت آموزشت خيلي ممنونم لطفا ادامه آموزش ها رو هم بذار

فقط يه مسئله اي كه ميخوام با اجازه شما بگم مربوط به FindMaxValue هستش

متد ()FindMaxValue در visual studio 2008 - .net framework 3.5 بصورت ()FindMaxByValue هستش

maikola
چهارشنبه 22 تیر 1390, 23:51 عصر
یاسلام من یه دیتاگرید دارم که میخوام با mschart نمودار دو تا ستون اون رو رسم کنم ستون Y از نوع string هست ولی به صورت عدد ستون X از نوع string که زمان در اون ثبت میشه مثل 12:23:4 حالا میخوام این نمودار رو در mschart رسم کنم ولی طبق انتظار نشون نمیده مثل زیر:
72414http://barnamenevis.org/images/misc/pencil.png

انتظاری
یک شنبه 09 مرداد 1390, 08:47 صبح
سلام همگی خسته نباشید
من نتوانستم کنترلی را به toolbax اضافه کنم .از سایتی که گفتید دو تا فایل MSChart.exe و Supplemental Redist License_English.docx را دانلود کردم و فایل اول را نصب کردم ولی اتفاقی نیفتاد حتی کامپوننت چارت را هم به toolboxاضافه کردم ولی اونم فایده ای نداشت Visual Stadio من 2008 است لطفا راهنمایی کنید مشکل از کجاست.

k_ce_esf
یک شنبه 09 مرداد 1390, 09:02 صبح
سلام همگی خسته نباشید
من نتوانستم کنترلی را به toolbax اضافه کنم .از سایتی که گفتید دو تا فایل MSChart.exe و Supplemental Redist License_English.docx را دانلود کردم و فایل اول را نصب کردم ولی اتفاقی نیفتاد حتی کامپوننت چارت را هم به toolboxاضافه کردم ولی اونم فایده ای نداشت Visual Stadio من 2008 است لطفا راهنمایی کنید مشکل از کجاست.

این دو فایل(MSChart_VisualStudioAddOnوMSChart) را از سایت ماکروسافت بگیرید و هردو را نصب کنید.بعد از این کار در toolBox این component اضافه میشه،اگه هم نشد با کلیک راست روی ToolBoxو انتخاب ChooseItem و از صفحه باز شده انتخاب chart مشکلتون حل میشه.

انتظاری
شنبه 15 مرداد 1390, 09:22 صبح
ممنون از k_ce_esf کنترل را تونستم نصب کنم
از آقای سجاد هم ممنون به خاطر آموزش خوبشان عالی بود
ولی یه مشکلی داشتم اونم اینکه موقعی که داده های خیلی زیادی داریم تعداد ستون ها روی محور x خیلی زیاد می شود من می خوام متن زیر هر ستون به صورت عمودی نمایش داده شود تا همه ی متن ها مشخص باشه و نیز آیا می شود تنظیم کرد که هر چند ستون یکبار متن زیر آن نمایش داده شود یا نه؟؟؟؟؟؟؟؟؟؟
ممنون میشم اگر راهنماییم کنید.

انتظاری
شنبه 15 مرداد 1390, 10:52 صبح
از طریق کد زیر تونستم Angle متن ها را تغییر دهم و متن را عمودی نمایش دهم .


chart1.ChartAreas[0].AxisX.LabelStyle.Angle = 90;


ولی می خوام متن زیر تمام ستون ها بیاد یا مثلا یک در میان
می خوام دستی خودم تعیین کنم که چند ستون یکبار متن زیر آن نمایش داده شود آیا میشه؟؟؟؟؟

S_VB.max
دوشنبه 17 مرداد 1390, 09:40 صبح
چجوری می تونم اندازه محورهای X و Y را کلفت تر کنم؟

nbe( amateur C sharp
دوشنبه 17 مرداد 1390, 14:49 عصر
با سلام... ببخشید من وقتی که میخوام MSChart_VisualStudioAddOn.exe رو نصب کنم ، به من error :
The Toolbox Controls Installer must be installed before running this installer.
رو میده ، الان باید چی کار کنم؟ و اینکه من visual studio من 2010 است و من تحت web application میخوام گراف رو..... میشه راهنمائیم کنید برای error بالا؟؟؟؟

nbe( amateur C sharp
سه شنبه 18 مرداد 1390, 16:55 عصر
سلام دوستان ، ایراد بالا برطرف شد :چشمک: من از visual studio 2010 استفاده میکنم که داخلش برای کد پیدا کردن max و min از من ایراد میگیره :


DataPoint maxValuePoint = Chart2.Series["Series1"].Points.FindMinByValue();


از series از من ایراد میگره و error اون هم Specified argument was out of the range of valid values.
Parameter name: startIndex است که ArgumentOutOfRenge است ، میشه راهنمائیم کنید که په جوری باید این ایراد رو برطرف کنم من به جای "series1" از 0 هم استفاده کردم ولی باز هم به من error مبده ، میشه راهنمائیم کنید؟؟؟؟؟

nazanin69
چهارشنبه 19 مرداد 1390, 14:15 عصر
توی سایت مایکروسافت دوتا فایل نصبی باید پیدا کنی یکی خود MSCHART و دیگری کنترلش برای اضافه شدن به toolbox، اگر هردوتاش رو نصب کنی بطور خودکار به toolbox اضافه میشه.
فکر میکنم اسم فایل دوم MSChart_VisualStudioAddOn.exe باشه.

سلام دوست عزیز من هر دوتاشو نصب کردن ولی بازم خطا داره که using System.Windows.Forms.DataVisualization.Charting;
رو نمی شناسه !!!!!!

S_VB.max
چهارشنبه 19 مرداد 1390, 15:08 عصر
من می خوام محور Y ها از 10 بیشتر نشان ندهد
اگر یکی از ستونها مقدار 10 داشت باز هم محور Y عدد 10 را نشان دهد بیشتر از این عدد را نمی خوام نشون دهد چی کار کنم تا رنج اعداد محور Y بیشتر از 10 نشود

nazanin69
چهارشنبه 19 مرداد 1390, 15:29 عصر
سلام چطور میتونم متن زیر هر ستون رو عوض کنم ؟؟؟ من میخام متن محور x هام باشه فروردین،اردیبهشت،خرداد و ...... ولی از chart1.Series["Series1"].Points[0].Label = "فروردین"; که استفاده می کنم میره توی نمودار می نویسه فروردین !!!!!!

nazanin69
پنج شنبه 20 مرداد 1390, 21:48 عصر
یعنی هیچ کس نیس جواب منو بده !!!! میدونم سوالم خیلی ساده است شاید واسه بعضی ها بدیهی باشه ، نمیدونم ولی من خیلی تلاش کردم نمیتونم خودم به محور ط هام label بدم همونطور که گفتم می خام محور xهام به جای 1و2و3و4و5و باشه ، فروردین ، اردیبهشت و خرداد باشه

sinashahab
پنج شنبه 03 شهریور 1390, 20:09 عصر
خوب اطلاعاتي كه به نمودار رو ميده به اين صورت بده :
"sina" , 21

LILI_SM_66
یک شنبه 20 شهریور 1390, 13:28 عصر
یعنی هیچ کس نیس جواب منو بده !!!! میدونم سوالم خیلی ساده است شاید واسه بعضی ها بدیهی باشه ، نمیدونم ولی من خیلی تلاش کردم نمیتونم خودم به محور ط هام label بدم همونطور که گفتم می خام محور xهام به جای 1و2و3و4و5و باشه ، فروردین ، اردیبهشت و خرداد باشه
کافیه شما متن زیر را تایپ کنید
chart1.Series[1].Points[1].AxisLabel =

"فروردین";

jblaox
جمعه 01 مهر 1390, 01:14 صبح
سلام

یک سوال ساده دارم خیلی ساده است اما ...


میخواستم بپرسم چه گونه میتوانم وقتی یک نمودار رسم کردم در محیط رسم نمودار آن پاک کنم بعد دوباره یک نمودار دیگه رسم کنم ؟؟

ببنید مثلا برنامه یک نمودار دما - زمان رسم کرده ، بعد کاربر هر موقع خواست با فشار یک دکمه بتواند در همون محیط یک نمودار سرعت - زمان رسم کنه ؟؟ یعنی نمودار قبلی پاک بشه و بعد بجاش نمودار جدید رسم شود ، من نمی دونم ان نمودار قبلی به چه دستوری یا ... و چه جوری پاک کنم ؟

-----------------------------------------------------------
پس نوشت

بعد از کلی گشتن و جواب نگرفتن ، آخر دوتا راه حل تجربی یافتم (به زمان ارسال پست توجه کنید) ،


راه حل اول === کارش این که محتویات یک (فقط نقطه ها) را کاملا پاک میکند ، و اینجوری دیگه چیزی برای نمایش دادن پیدا نمیکنه ، مگر این که با دستور add دوباره به این سری نقطه بدهید ...

chart1.Series["jblaox"].Points.Clear();


راه حل دوم === این که آن را خاموش کنید ، با این کار از دیده ها پنهان میشود ، اما نقاط وجود دارند در Series وجود دارند ، برای من عیبش این بود که وقتی دوباره از بانک داده میخواندم و به سری میدادم کلی داده تکرار در نمودار داشتم ....

chart1.Series["jblaox"].Enabled = false;


امیدوارم به کار شما بی آید

eatnm2
یک شنبه 08 آبان 1390, 21:34 عصر
باید کلمه ی "Series1" رو با S بزرگ بنویسید؛ مثل: chart1.Series["Series1"]
اگه بازم نشد، باید چک کنی که series رو قبلا به چارتت Add کرده باشی؛ مثل: chart1.Series.Add(seriesCosts);

sobaisobai
دوشنبه 12 دی 1390, 20:35 عصر
سلام
عکس زیر رو ببینید
80052
من 12 تا ماه دارم
میخوام اسم 12 تا ماه هم جای نوشته های عکس نوشته بشه
مثلا فروردین - اردیبهشت-خرداد-تیر-و......
اما وقتی از دیتابیس اطلاعات ماه هارو میخونم یکی در میان نشون میده
مثلا فروردین- خرداد- مرداد-و.....
چیکار کنم درست بشه؟

kathy11ir
شنبه 17 دی 1390, 22:51 عصر
با سلام

در ابتدا به خاطر مطالبی که در اين زمينه ارائه کرديد تشکر می کنم.

من Visual Studio 2010 را نصب کرده و 2 فايل MSChart و MSChart_VisualStudioAddOn را دانلود کردم، برنامه اول را نصب کردم اما برای نصب برنامه دوم با اين خطا روبرو شدم "The Toolbox Controls Installer must be installed before running this installer"

به چه صورت میتوانم فايل دوم را نصب کنم و آيتم chart را به Toolbox اضافه کنم

با تشکر

2okeee
یک شنبه 18 دی 1390, 10:24 صبح
با سلام

در ابتدا به خاطر مطالبی که در اين زمينه ارائه کرديد تشکر می کنم.

من Visual Studio 2010 را نصب کرده و 2 فايل MSChart و MSChart_VisualStudioAddOn را دانلود کردم، برنامه اول را نصب کردم اما برای نصب برنامه دوم با اين خطا روبرو شدم "The Toolbox Controls Installer must be installed before running this installer"

به چه صورت میتوانم فايل دوم را نصب کنم و آيتم chart را به Toolbox اضافه کنم

با تشکر

سلام

در VS2010 نیازی به نصب هیچ چیزی ندارید خودش Chart داره ...

Toolbox >> Data >> Chart

این که میگن افزونه ان نصب کن برای 2008 است که چارت نداره ....

موفق باشید

2okeee
یک شنبه 18 دی 1390, 10:25 صبح
سلام


من 12 تا ماه دارم
میخوام اسم 12 تا ماه هم جای نوشته های عکس نوشته بشه
مثلا فروردین - اردیبهشت-خرداد-تیر-و......
اما وقتی از دیتابیس اطلاعات ماه هارو میخونم یکی در میان نشون میده
مثلا فروردین- خرداد- مرداد-و.....
چیکار کنم درست بشه؟

سلام
فکر کنم فونت ها را باید کوچک کنید تا نام ماه ها را کامل نمایش بده ...
موفق باشید

fanOfcSharp
یک شنبه 09 بهمن 1390, 14:36 عصر
برای Chartarea این مشخصات رو ست کنید
<AxisX Interval="1" />

mohammadgoler
پنج شنبه 25 اسفند 1390, 06:02 صبح
خیلی عالی بود
ولی من فکر میکنم برای اتصال یک دیتابیس به یک چارت که در ویژوال استادیو 2010 وجود دارد براحتی بتوان اطلاعات را بصورت نموداری نمایش داد . لطفا در این مورد هم بنویسید ... البته منظورم این نیست که برنامه بنویسید و داده ها را انتقال بدید ... منظورم ویژگی دیتاسورس چارت میباشد

Parham.D
پنج شنبه 25 اسفند 1390, 08:39 صبح
از دوستان عزیز کسی هست که بدونه چطور میشه فایلهای مختلف را به chart متصل کرد؟! مثلا اگر داده های ما در یک فایل Excel یا XML بود، چه باید کرد؟ اگر اشتباه نکنم فقط اتصال به SQL گفته شد. ممنون.

skmr_ae
پنج شنبه 17 فروردین 1391, 09:56 صبح
سلام
از اموزش خوبتون ممنون خدا خیرتون بده
فقط چطور می شه نمودار رو فقط برای مقدار یک فیلد از یک ستون (مقدار یک سلول) مشابه نمودار گانت توی نرم افزار ms project کشید؟؟؟
و چطور می شه نرم افزار رو 90 درجه چرخوند؟؟؟
کمک کنید:گریه:
با سپاس

AliSadat
چهارشنبه 20 اردیبهشت 1391, 13:13 عصر
سلام دوستان
من نتونستم فایل دوم رو پیدا کنم !
اگر امکاتنش براتون هست ، لینک بزارید یا خود فایل رو بزارید.سپاسگذارم:لبخندساده :

AliSadat
چهارشنبه 20 اردیبهشت 1391, 13:21 عصر
سلامی دوباره . .. پیداش کردم برای کسایی که مثل بنده یه کم تو سرچ ضعیف هستن >>>> لینک فایل دوم (MSChart_VisualStudioAddOn)

http://www.microsoft.com/downloads/details.aspx?FamilyID=1D69CE13-E1E5-4315-825C-F14D33A303E9&displaylang=en&displaylang=en

mortaza_bn
پنج شنبه 21 اردیبهشت 1391, 18:03 عصر
اقا border خطهای یک series رو چگونه میشه تغییر داد.

rahas2
یک شنبه 24 اردیبهشت 1391, 21:12 عصر
سلام شما باید به جای .lable از chart1.Series["S1"].Points[0].AxisLabel = "موافق";استفاده کنین

HAMRAHSOFT.IR
دوشنبه 15 خرداد 1391, 00:44 صبح
سلام دوستان کسی نمونه ساده نداره بزاره اینحا

robat7
جمعه 23 تیر 1391, 22:52 عصر
واي كلي طول كشيد تا تونستم mschartرو به ويژوال استديوم اضافه كنم يعني بايد حذفش كنم و واينو كه شما گفتيدو اضافه كنم ،لطف ميكنيد ادرس لينك دانلودشو دقيق بگيد،كدنويسيش كه فرقي نميكنه؟يعني ميتونم از همين آموزشي كه شما لطف كرديدو گذاشتيد براي تحت وب هم استفاده كنم؟خواهش ميكنم اگه ميتونيد راهنمايي كنيد 2 ماه دارم تو وب در مورد نمودار گيري سرچ ميكنم ،از هر چي بگيد استفاده كردم نشدم ،:گریه:شما از روش نمودار گيري تحت وبmschart خودتون استفاده كرديد?mersiii

دوست عزیز
من از برنامه zedgraph استفاده می کنم این برنامه open source است و حدود یک سال پیش من این برنامه را در همین سایت معرفی نموده ام با اندکی جستجو آنرا می توانید بیابید و تعداد آموزشهای آن نیز قابل شمارش نیست
نیازی به نصب هم ندارد فقط کافی است dll آنرا در کنار فایل اجرایی برنامه کپی نمایید
http://zedgraph.sourceforge.net/samples.html

کامیاب باشید

jblaox
شنبه 24 تیر 1391, 02:49 صبح
به نام ایزد یکتا

میتوانید چند هزار مثال + سورس کد ان را از لینک زیر دریافت کنید :

http://archive.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=4418


قابل ذکر است تمام مثال های اینجا و تمام عکس ها و آموزش های اینجا بر گرفته از همین فایل است ...

موفق باشید

Mandana Ms
یک شنبه 25 تیر 1391, 23:37 عصر
سلام من چند روز پیش نوشتم که نمی تونم با ابزار chart که برای mschart هست کار کنم!مشکلم درست شد این جوابو می زنم شاید کسی مثل من دفعه اولش باشه!وقتی فایل دوم رو نصب می کنید که لینکشم دوستان گذاشتن توی تب data یک ابزار به نام chart می یاد اگه بزنیش 1 چارت توی صفحه میندازه.بعد که وارد صفحه کد میشید باید بالا این using رو بزنین:
using System.Windows.Forms.DataVisualization.Charting;
بعد با کلاساش کار می کنید .
برای من مشکل این بود که از یک فایل txt بخ.نه و چارت رو بکشه شما میتونید با straemreader اینکارو بکنید محتویات رو من توی string[] ریختم بعدش فقط با یک دستور اونو نشون می دم!
chart1.Series[0].Points.Add(Convert.ToDouble(line));
فقط تنها مشکلی که هست اینه که برای من خط اول رو نمی خوند چون من فایلم اینطوریه مثلا:
10
4
5
6
ولی بدلایلی برای پروژم نیاز به header توی خواندن و نوشتن فایل هام داشتم زیاد منو اذیت نکرد.
همچنین موقعی که فایلو میخونید اگه توی فایلتون مثلا + یا حرف هست باید توی شرط اونارو بنویسید یا ببنده یا continue کنه!
فقط قبلش برای کار با فایل اینو یادتون نره!!!
using System.IO;

maikola
شنبه 31 تیر 1391, 07:43 صبح
سلام
من می خواستم با زدن یک باتن تو برنامه به تعداد دلخواه لیبل قابل ویرایش و قابل جابجایی تو فرم نمودار ظاهر بشه تا اینجاشو مشکل نداشتم ولی دو تا مشکل دارم
1: اگه برای مثال 5 تا لیبل قرار دادم بخوام لیبل شماره 4 رو حذف کنم چطور حذفش کنم یا visible همون لیبل رو غیر فعال کنم منظورم اینه که چطوری خاصیت select شدن لیبل مورد نظر رو تشخیص بدم
2: فرم نمودار و فرم اصلی برنامم از هم جدا هستن اگه چند تا لیبل روی فرم نمودار قرار بدم بعد فرم نمودار رو ببندم و دوباره اون رو show کنم همه لیبل ها پاک میشن میخوام تا زمانیکه کاربر لیبل رو پاک نکرده سر جاش بمونه
ممنون

maikola
شنبه 31 تیر 1391, 14:50 عصر
سلام سوال اول حل شد

private void chart1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Delete)
{
MessageBox.Show("del");
foreach (RectangleAnnotation annotation in chart1.Annotations)
{

if (annotation.IsSelected == true)
annotation.Visible = false;
}

}
}

ولی جواب سوال دوم هنوز نیازمند کمک دوستان هست

maikola
شنبه 31 تیر 1391, 15:59 عصر
جواب سوال دوم:

در قسمت لود فرم نمودار

if (frmain.numberRec > 0)
{

for (int midi = 0; midi < frmain.numberRec; midi++)
{
RectangleAnnotation annotationRectangle = new RectangleAnnotation();
annotationRectangle.Text = frmain.Rec[midi].Text;
annotationRectangle.X = frmain.Rec[midi].X;
annotationRectangle.Y = frmain.Rec[midi].Y;
annotationRectangle.Width = frmain.Rec[midi].Width;
annotationRectangle.Height = frmain.Rec[midi].Height;
annotationRectangle.LineColor = frmain.Rec[midi].LineColor;
annotationRectangle.Font = frmain.Rec[midi].Font;
annotationRectangle.ForeColor = frmain.Rec[midi].ForeColor;
annotationRectangle.BackColor = frmain.Rec[midi].BackColor;

annotationRectangle.AllowMoving = true;
annotationRectangle.AllowAnchorMoving = true;
annotationRectangle.AllowSelecting = true;
annotationRectangle.AllowTextEditing = true;
annotationRectangle.AllowResizing = true;
annotationRectangle.Alignment = ContentAlignment.MiddleCenter;
annotationRectangle.Visible = true;
chart1.Annotations.Add(annotationRectangle);



}
}


در قسمت closing فرم نمودار

frmain.numberRec = 0;
foreach (RectangleAnnotation annotation in chart1.Annotations)
{
if (annotation.Visible == true)
{
frmain.Rec[frmain.numberRec] = annotation;
frmain.numberRec++;

}
}


ودر فرم اصلي

public RectangleAnnotation[] Rec = new RectangleAnnotation[41];
public int numberRec;

MEGANMEGAN
سه شنبه 03 مرداد 1391, 12:05 عصر
با سلام به دوستان
يه سوال دارم
وقتي منحني رو در حالت عادي رسم مي کنم با intrval=0.1 همه چي درسته ولي وقتي نمودار رو لگاريتمي مي کنم اعداد روي محور x رو با دقت 6 رقم اعشار نشون مي ده چطورمي تونم اولا اين اعداد رو گرد شده نشون بدم و دوم اينکه چطور مي تونم نقاط روي محور y به انتخاب خودم باشه و نه با يه interval ثابت و مشخص
با تشکر

maikola
سه شنبه 10 مرداد 1391, 08:39 صبح
سلام
چطوری میشه رسم نمودار mschart رو تو thread قرار داد؟

در حقیقت من 16 تا نمودار دارم که هرکدوم از نمودار ها میتونه بیشتر از 6000 نمونه داشته باشه
تعداد نمونه ها حدودا از 500 تا که بیشتر میشه وقتی فرم حاوی نمودار رو جابجا میکنم (با موس حرکت میدم) نمودار چند ثانیه ای هنگ میکنه بعد خودشو آپدیت می کنه
هرچی تعداد نمونه بیشتر باشه زمان هنگ هم بیشتر میشه
از backgroundworker استفاده کردم ولی زیاد فرقی نکرد خروجی کدی که نوشتم درست هست ولی نمیدونم روش استفاده از worker به همین صورته یا نه؟
و اینکه اگه از thread استفاده کنم وضع بهتر میشه؟


delegate void mychart(string x, string y,int mySeries);
private BackgroundWorker bw1;


void bw1_DoWork(object sender, DoWorkEventArgs e)
{ DataTable dtgraphTable = new DataTable();
dtgraphTable = frmain.dt.Copy();
dtgraphTable.DefaultView.Sort = "رديف ASC";
for (int midi16 = 0; midi16 < 16; midi16++)
{
if (Box1.GetItemChecked(midi16) == true)
{
for (Int32 i = 0; i < maxX; i++)
{
midStepX = i * StepX;
midStepX = midStepX + minX;
if (midStepX > maxX - 1) break;
setChart(dtgraphTable.Rows[midStepX].ItemArray.GetValue(1).ToString(), dtgraphTable.Rows[midStepX].ItemArray.GetValue(midi16 + 2).ToString(),midi16);

}
}
}

}
private void setChart(string x,string y,int mySeries)
{
if (this.chart1.InvokeRequired)
{
mychart callback = new mychart(setChart);
this.Invoke(callback, new object[] { x,y,mySeries });
}
else
{
this.chart1.Series[mySeries].Points.AddXY(x, y);
}
}

maikola
سه شنبه 10 مرداد 1391, 13:02 عصر
با ترید هم برنامه رو به صورت زیر نوشتم ولی بازم فرقی نکرد

delegate void mychart(string x, string y,int mySeries);
Thread t = new Thread(S);t.Start();
void S()
{
DataTable dt0 = new DataTable();
dt0 = frmain.dt.Copy();
dt0.DefaultView.Sort = "رديف ASC";
for (Int32 midi = 0; midi < 16;i++)
{
for (Int32 i = 0; i < 3000; i++)
setChart(dt0.Rows[i].ItemArray.GetValue(1).ToString(),dt0.Rows[midStepX].ItemArray.GetValue(midi+2).ToString(),midi);


}

}
private void setChart(string x,string y,int mySeries)
{
if (this.chart1.InvokeRequired)
{
mychart callback = new mychart(setChart);
this.Invoke(callback, new object[] { x,y,mySeries });
}
else
{
this.chart1.Series[mySeries].Points.AddXY(x, y);
}

}

f.beigirad
سه شنبه 22 اسفند 1391, 15:51 عصر
سلام.چطوری میشه محور Y رو محدود کرد.

میخوام همیشه این محور از 0 تا 30 رو نشون بده.
عرض نقاطی که دارم کمتر از 30 هستن.

با تشکر

mhmd.tv
چهارشنبه 19 تیر 1392, 20:41 عصر
یه منبع خیلی خیلی کامل و جامع می خوام که به طور تخصصی برای chart توضیح داده باشه
منبع اگه به زبان انگلیسی هم بود اشکالی نداره
احتیاج شدیدی به اطلاعات در این زمینه احتیاج دارم

f.beigirad
پنج شنبه 20 تیر 1392, 00:16 صبح
یه منبع خیلی خیلی کامل و جامع می خوام که به طور تخصصی برای chart توضیح داده باشه
منبع اگه به زبان انگلیسی هم بود اشکالی نداره
احتیاج شدیدی به اطلاعات در این زمینه احتیاج دارم


با سلام به شما.
حقیقتا من دنبال منبعی نگشتم.
فقط یک پروژه رو از CodeProject دانلود کردم و در حدی که خودم نیاز داشتم استفاده کردم.براتون ضمیمه کردم.

در ضمن وقتی شما یک Chart رو روی فرمتون میذارید میتونید یک چارت یا امکانات مورد نیاز طراحی کنید.
بعدش از روی کد هایی که خود ویژوال در قسمت Form.Designer میذاره میتونید استفاده کنید.

موفق باشید

daivid_ d31r1
شنبه 05 مرداد 1392, 10:28 صبح
دوستان سلام
من میخام تو برنامه از گزارش نموداری استفاده کنم
این تاپیکو خوندم چیزی نتونستم پیدا کنم...
ممنون میشم راهنمایی کنید
این عکسو میذارم نگاه کنید ...
من جدولی دارم میخام ستون اول هر سطر نشون داده بشه به عنوان برچسب هر سری محاسبه
در واقع من جدولم شامل ستونهای زن مرد و مجموع ونام مثلن اون گروه
حالا من میخام نام اون گروه زیر لیبل هر دسته نشون داده بشه
چطو میشه؟؟
=================
بیا تا برایت بگویم چقدر تنهایی من بزرگ است

darkwish
یک شنبه 27 مرداد 1392, 13:04 عصر
سلام دوستان من از این نمودار تو vs 2008 کار کردم جواب گرفتم حالا رفتم vs 2012 رو نصب کردم ولی فرم که نمودار رو طراحی کردم ارور میده نمی دونم چی کارش کنم
109289
ممنون می شم کمکم کنید به نظرم ارور برای اینه که میگه mschart برای .net framework 3.5 هست نه 4 یا 4.5

sd.akbarzadeh
سه شنبه 05 شهریور 1392, 18:26 عصر
سلام!
یه برنامه نوشتم که یک ورودی را از پورت سریال میخونه و مقدار را روی نمودار نشان میده...وهر ثانیه حدود 100 نمونه از ورودی میگیرم... الان با اضافه شدن نمونه نمودار جمع میشه ... من در رابطه با انجام کارهای زیر از شما کمک می خوام...:گریه:
1-ثبت نمونه بر مبنای ساعت کامپیوتر(محورx=زمان)
2-اسکرول کردن بر روی نمودار نتیجه و دیدن مقادیر قبلی

aliramazani
شنبه 16 شهریور 1392, 21:39 عصر
اتصال با linq را هم میگین؟

we_ahmadee
جمعه 05 مهر 1392, 11:22 صبح
(9)
(حرفه ای)
الان میخوام نحوه اتصال نمودار رو به جدولی از دیتابیس براتون توضیح بدم،(data source binding)
در کد زیر من از دیتابیسی استفاده کردم که جدولی به نام REPS دارد و این جدول ستونهایی به نام name,sales دارد،

// Define the database query
string mySelectQuery="SELECT * FROM REPS;";

// Create a database connection object using the connection string
OleDbConnection myConnection = new OleDbConnection(myConnectionString);

// Create a database command on the connection using query
OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);

// Set chart data source
chart1.DataSource = myCommand;

// Set series members names for the X and Y values
chart1.Series["Series 1"].XValueMember = "Name";
chart1.Series["Series 1"].YValueMembers = "Sales";

// Data bind to the selected data source
chart1.DataBind();

65835
http://barnamenevis.org/images/misc/pencil.png

سلام من هر کار می کنم نمی تونم به بانک وصل شم،خطایی نمی ده ولی عکس العملی هم انجام نمی ده،کسه نمی دونه من باید چه کنم

alirezat_66
پنج شنبه 11 مهر 1392, 21:58 عصر
سلام دوستان . من 2 تا سوال داشتم امیدوارم کمک کنید که جواب بگیرم.
1- اگر بخوام نمودار زمان-مکان رسم کنم و با گذشت زمان لاین کشیده بشه ، و بعد از اینکه خط به انتهای نمودار رسید از اول شروع کنه به رفرش کردن نمودار . یعنی مثلا آخر نمودار 10 باشه وقتی زمان به 10 ثانیه رسید بره روی صفر اما فقط نقطه ی مربوط به صفر رو روفرش کنه باید چکار کنم؟
2- آیا در این mschart این امکان وجود داره که اعداد روی محور x و y رو پاک کنیم و خطوط عمودی افقی کشیده شده توی نمودار رو برداریم؟

fm.ghias
یک شنبه 21 مهر 1392, 12:01 عصر
با تشکر از تاپیک بیسار مفید شما من با این مطالبی که گفتید یه نمودار توی asp.net رسم کردم حالا می خوام کاربر با زدن یه کلید بتونه نمودار رو با پسوند jpg ذخیره کنه چطوری باید این کارو بکنم

aliramazani
جمعه 06 دی 1392, 17:36 عصر
چارت دایره ای چطوریه؟

hamed.fattahi
یک شنبه 07 اردیبهشت 1393, 14:23 عصر
با سلام.خسته نباشید
من می خوام با استفاده از یه چارت چند تا نمودار رو همزمان به صورت خطی بکشم.ولی احتیاج دارم که اعداد عمودی کنار نمودار برای هر کدوم متفاوت باشه.می خواستم بدونم چه جوری می تونم این کارو انجام بدم
ممنون

farzad_1354
جمعه 19 اردیبهشت 1393, 17:53 عصر
سلام خسته نباشيد
آموزش خوبي بود ، من چارت رو کشيدم
ولي يه مشکل دارم روي محور x ها اگه بخواي چند مورد داشته باشي مثلا بر اساس گروه کاري و تاريخ هر دو رو نشون بده چکار بايد کرد ؟؟

Amin69
شنبه 04 مرداد 1393, 19:28 عصر
سلام
ممنون بابت این آموزش
خاصیت سه بعدی(کدی که گذاشته شده) برای من کار نمیکنه! نکته خاصی داره؟!

Dadvar
جمعه 14 شهریور 1393, 18:58 عصر
(3)
برای کشیدن یه نمودار ساده میتونید از کدهای زیر استفاده کنید، فقط باید در ابتدا از using زیر استفاده کنید:

using System.Windows.Forms.DataVisualization.Charting;
رسم نمودار:

private void DynamicChartCreation_Load(object sender, System.EventArgs e)
{
// Create a Chart
chart1 = new Chart();

// Create Chart Area
ChartArea chartArea1 = new ChartArea();

// Add Chart Area to the Chart
chart1.ChartAreas.Add(chartArea1);

// Create a data series
Series series1 = new Series();
Series series2 = new Series();

// Add data points to the first series
series1.Points.Add(34);
series1.Points.Add(24);
series1.Points.Add(32);
series1.Points.Add(28);
series1.Points.Add(44);

// Add data points to the second series
series2.Points.Add(14);
series2.Points.Add(44);
series2.Points.Add(24);
series2.Points.Add(32);
series2.Points.Add(28);

// Add series to the chart
chart1.Series.Add(series1);
chart1.Series.Add(series2);

// Set chart control location
chart1.Location = new System.Drawing.Point(16, 48);

// Set Chart control size
chart1.Size = new System.Drawing.Size(360, 260);

// Add chart control to the form
this.Controls.AddRange(new System.Windows.Forms.Control[] { this.chart1 });

}


با سلام

دوستان ویژوال استودیو من 2012 هست ولی با این فایلی رو که دوستمون گفت رو دانلود و instal کردم منتهی این using که گفتن بالا نمیاد !!!!!
اگر ممکنه بیشتر راهنمایی بفرمائید.
با تشکر

sudabeh
جمعه 21 شهریور 1393, 16:10 عصر
سلام
این جوابی که با thread داده شده را اگر ممکن است برام ارسال کنید منم همین مشکل رو دارم با Mschart .
12 تا چارت دارم که 10 میلی ثانیه یکبار باید رفرش بشوند.

ghasem110deh
جمعه 25 مهر 1393, 09:39 صبح
سلام
بچه ها واسه طراحی چنین چیزی چطور عمل کنم ؟

باید یه برنامه شبیه این بنویسم : (اسپکتروم آنالایزر) --> طیف نما یا طیف سنج
نمودار هیستوگرام ...

http://mnnahvi.persiangig.com/bests4ufiles/fft.JPG


درواقع باید ورودی (فرکانس یا طول موج) رو بگیره و شکل و منحنی رو بصورت نمودار سینوسی نشون بده !

راهنمایی !؟
ممنون

hamed_elc
دوشنبه 15 دی 1393, 20:09 عصر
سلام
من خودم دنبال رسم سه بعدی (صفحه) بودم که از لینک زیر کمک گرفتم
http://ilnumerics.net/surface-plots.html

cnmeysam
پنج شنبه 10 اردیبهشت 1394, 08:54 صبح
سلام یه سوال فنی داشتم فرض کنید من یه برنامه دارم که به SQL وصل هست تو C#
تو تیبل Amar یه فیلد دارم به اسم Mozakar ( تعداد اعضای مذکر ) قاعدتا توش هم میتونه عدد 1 هم 2 هم 3 هم 4 و... ثبت شده باشه
چطور میتونم یه نمودار رسم کنم که بهم بگه چند تاش 1. چند تاش 2 و ... هستش؟
باید دیتا رو از SQL فرا بخونه ولی نمیدونم چطور تفکیک کنم تعداد مثلا 1نفر یا 2نفر و ... رو که بعد تو نمودارم نشون بده میشه از اساتید یکی به من ناشی یه کمکی بده؟
خیلی ممنون میشم کمکم کنید

mahvar
پنج شنبه 25 تیر 1394, 00:37 صبح
سلام. منم هم چین مشکلی رودارم. اگر شما ره حل پبدا کردین به منم کمک می کنید

mahdytaherian
دوشنبه 09 آذر 1394, 21:22 عصر
اتصال با linq را هم میگین؟



Chart chart1;
LINQDataContext db = new LINQDataContext();


chart1 = new Chart();
ChartArea chartAria1 = new ChartArea();
chart1.ChartAreas.Add(chartAria1);
Series series1 = new Series();
chart1.Series.Add(series1);

var qry = db.Tb_Tables.Select(c => new { c.family, c.mablagh });
chart1.DataSource = qry;
chart1.Series[0].XValueMember = "family";
chart1.Series[0].YValueMembers = "mablagh";
chart1.DataBind();

cnmeysam
سه شنبه 10 آذر 1394, 01:14 صبح
سلام. منم هم چین مشکلی رودارم. اگر شما راه حل پبدا کردین به منم کمک می کنید

این یک راهشه من پیدا کردم
TxtSum.Text = con.Back_Query("SELECT count(ID) FROM Amar where Mozakar like N'" + TxtFormul.Text +"'");
یا
TxtSum.Text = con.Back_Query("SELECT count(ID) FROM Amar where Mozakar like N'1'");
بعد مقداری که تو TxtSum.Text یا لیبل یا هرجا که ذخیره کردی رو بگو تو نمودار نشون بده
تقزیبا اینجوری:

chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true;
chart1.ChartAreas["ChartArea1"].Area3DStyle.LightStyle = LightStyle.Realistic;
chart1.ChartAreas["ChartArea1"].Area3DStyle.Rotation = 10;
chart1.ChartAreas["ChartArea1"].Area3DStyle.WallWidth = 3;
chart1.BorderColor = Color.Transparent;
chart1.Name = "IncompleteWorkOrdersByStatus_ChartArea";


chart1.Series.Clear();
chart1.Titles.Clear();
Title title = chart1.Titles.Add(Txt_Nemudar.Text);
title.Font = new System.Drawing.Font("Tahoma", 20, FontStyle.Bold);


chart1.Palette = ChartColorPalette.Bright; //رنگهای ستونها


string[] range = new string[10];
Series S1 = new Series();
chart1.Series.Add(S1);

TxtSum.Text = con.Back_Query("SELECT count(ID) FROM Amar where Mozakar like N'1'");

range[1] = "تعداد مذکر که برابر 1 هستند";
S1.Points.AddXY("تعداد مذکر که برابر 1 هستند= #VALY\n", TxtSum.Text);

راحیل مهربان
یک شنبه 25 بهمن 1394, 13:24 عصر
سلام به همگی :)

اول تشکر میکنم به خاطر این تاپیک. یه سری از اشکالاتم رو همینجا حل کردم. ممنون از همگی @};-

دوم اینکه تو رسم چارتم به یه مشکل برخوردم. البته از کدهایی که نوشتم جواب گرفتم. تنها یه مشکل دارم، اون هم اینکه با هربار کلیک کردن رو دکمه نمایش (که کدهای فراخوانی نمایش چارت رو توش نوشتم) ، نمودار نمایشی کوچیک و کوچیک تر میشه.

علتش رو درک نمیکنم. ممنون میشم اگر راهنمایی کنید.
منتظر پاسختون هستم دوستان :)