PDA

View Full Version : آموزش: آموزش کار با ابزارهای سی شارپ



aradrobo
شنبه 11 خرداد 1392, 18:45 عصر
نحوه کار با errorProvider :

برای یادگیری ابتدا یک تکست باکس و یک باتن به برنامه اضافه کنید و سپس errorProvider را به برنامه اضافه کنید. حال با نوشتن دستور زیر زمانی که روی باتن کلیک می کنید ، اگر درون تکست باکس خالی باشد ، پیغام خطا می دهد .


private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
errorProvider1.SetError(textBox1, "لطفاً نام را وارد فرمائید");
textBox1.Focus();
return;
}
else
errorProvider1.Clear();
}

aradrobo
شنبه 11 خرداد 1392, 18:46 عصر
maskedTextBox چیست و چه کاربردی دارد ؟

با استفاده از این ابزار می توانید کاربر را محدود کنید . به عنوان مثال می خواهید بر اساس سلیقه شما کاربر مقداری را وارد کند . مثلاً می خواهید یک تاریخ وارد کند و یا یک زمان .
به شکل زیر :
--/--/---- برای تاریخ
--:-- برای زمان

بعضی مواقع شما می خواهید یک تکست باکسی داشته باشید که کاربر فقط بتواند عدد وارد کند ، حتی با Copy/Paste هم امکان وارد کردن متن نباشد . لذا همین ابزار بهترین گزینه می باشد . کافی است خاصیت mask رو روی Numeric بزارید.


لذا این ابزار بسیار مفید می باشد.

aradrobo
شنبه 11 خرداد 1392, 18:54 عصر
پخش همه نوع آهنگ

حتماً بیشتر شما برنامه نویسان می دانید که برای پخش آهنگ های MP3 نیاز به کتابخانه DirectX دارید ولی در دات نت هیچ نیازی به توابع DirectX برای پخش همه نوع فایل های صوتی که مدیا پلیر ویندوز می تواند پخش کند ، ندارید البته فکر نکنید که من می خواهم ActiveX نرم افزار Media Player را آموزش دهم چون در این ترفند به هیچ فایل DLL جداگانه ای برای پخش آهنگ نیاز ندارید.ابتدا باید یک پروژه Windows Form با دات نت ۳٫۰ به بالا در ویژوال استودیو بسازید و سپس به ترتیب Reference های PresentationCore و WindowsBase را به پروژه اضافه کنید.حالا براحتی می توانید از کلاس System.Windows.Media.MediaPlayer برای پخش آهنگ استفاده کنید.

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

البته برای استفاده از این کلاس حتماً باید پروژه ای با دات نت ۳٫۰ یا بالاتر ساخته باشید.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Windows.Media;

namespace Music_Player
{
public partial class Form1 : Form
{
private MediaPlayer player = new MediaPlayer();
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
player.Open(new Uri("C:\\Test.mp3", UriKind.Relative));
player.Play();
}
}
}

aradrobo
شنبه 11 خرداد 1392, 18:55 عصر
هر پنجره ای رو که خواستید قفل کنید
[DllImport("user32.dll")]
private static extern int EnableWindow(int hwnd, int fEnable);

int i = this.Handle.ToInt32();

int u= EnableWindow(i, 1);

تو این مثال handel پنجره فعلی رو میگیره و قفل میکنه که میتو نید با این تابع handel سایر پنجره ها رو بدست بیارید و قفل کنید.

[DllImport("user32.dll")]
private static extern int FindWindow(string lpClassName, string lpWindowName);

int i = FindWindow(null, "Windows Task Manager");

مثلا الان هندل task manager رو گرفتیم و گذاشتیم تویه I که میتونیم از I در تابع قبلی استفاده کنیم و Task Manager رو قفل کنیم

aradrobo
شنبه 11 خرداد 1392, 18:59 عصر
لود کردن محتویات سایت در یک ریچ باکس
using System.IO;
using System.Net;

try
{
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create(txtURL.Text);
request.Timeout = 6000;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader responseReader = new StreamReader(responseStream);
rtbWebPage.Text = responseReader.ReadToEnd();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

aradrobo
چهارشنبه 29 خرداد 1392, 16:47 عصر
انواع رویداد های KeyPress
با این کد فقط میتونید در تکست باکس عدد بنویسید:
private void textBox1_KeyPress (object sender, KeyPressEventArgs e)
{
if (char.IsDigit(e.KeyChar) || e.KeyChar == (int) Keys.Back)
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}


با این کد فقط میتونید در تکست باکس کارکتر کوچیک بنویسید:
private void textBox1_KeyPress (object sender, KeyPressEventArgs e)
{
if (char.IsLower(e.KeyChar) || e.KeyChar == (int)Keys.Back)
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}

با این کد فقط میتونید در تکست باکس کارکتر بزرگ بنویسید:
private void textBox1_KeyPress (object sender, KeyPressEventArgs e)
{
if (char.IsUpper(e.KeyChar) || e.KeyChar == (int)Keys.Back)
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}

با این کد فقط میتونید در تکست باکس کارکتر کوچیک و بزرگ بنویسید:
private void textBox1_KeyPress (object sender, KeyPressEventArgs e)
{
if (char.IsLetter(e.KeyChar) || e.KeyChar == (int)Keys.Back)
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}

با این کد فقط میتونید در تکست باکس کارکتر هایی که سیمیل شناسایی می شوند رو بنویسید:
private void textBox1_KeyPress (object sender, KeyPressEventArgs e)
{
if (char.IsSymbol(e.KeyChar) || e.KeyChar == (int)Keys.Back)
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}

intel_amd
چهارشنبه 29 خرداد 1392, 23:29 عصر
پخش همه نوع آهنگ

حتماً بیشتر شما برنامه نویسان می دانید که برای پخش آهنگ های MP3 نیاز به کتابخانه DirectX دارید ولی در دات نت هیچ نیازی به توابع DirectX برای پخش همه نوع فایل های صوتی که مدیا پلیر ویندوز می تواند پخش کند ، ندارید البته فکر نکنید که من می خواهم ActiveX نرم افزار Media Player را آموزش دهم چون در این ترفند به هیچ فایل DLL جداگانه ای برای پخش آهنگ نیاز ندارید.ابتدا باید یک پروژه Windows Form با دات نت ۳٫۰ به بالا در ویژوال استودیو بسازید و سپس به ترتیب Reference های PresentationCore و WindowsBase را به پروژه اضافه کنید.حالا براحتی می توانید از کلاس System.Windows.Media.MediaPlayer برای پخش آهنگ استفاده کنید.

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

البته برای استفاده از این کلاس حتماً باید پروژه ای با دات نت ۳٫۰ یا بالاتر ساخته باشید.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Windows.Media;

namespace Music_Player
{
public partial class Form1 : Form
{
private MediaPlayer player = new MediaPlayer();
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
player.Open(new Uri("C:\\Test.mp3", UriKind.Relative));
player.Play();
}
}
}


ببخشید کدوم پروژرو دانلود کنیم فایلی نیست!

aradrobo
پنج شنبه 30 خرداد 1392, 04:56 صبح
ببخشید کدوم پروژرو دانلود کنیم فایلی نیست!
متاسفانه به دلیل ناراضی بودن صاحب اثر ، پروژه حذف گردیده است.

mohsen22
پنج شنبه 30 خرداد 1392, 07:36 صبح
متاسفانه به دلیل ناراضی بودن صاحب اثر ، پروژه حذف گردیده است.

حیف شد یعنی هیچ راهی نیست!

intel_amd
پنج شنبه 30 خرداد 1392, 09:05 صبح
:لبخند::لبخند:

aradrobo
جمعه 31 خرداد 1392, 07:32 صبح
حیف شد یعنی هیچ راهی نیست!

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

aradrobo
یک شنبه 02 تیر 1392, 16:43 عصر
ساخت فایل متنی

string fileLoc=@"D:\sample1.txt";
FileStream fs=null;
if (!File.Exists(fileLoc))
{
using (fs=File.Create(fileLoc))
{
...
}}


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

aradrobo
یک شنبه 02 تیر 1392, 16:45 عصر
نوشتن در فایل متنی

string fileLoc=@"D:\sample1.txt";
if (File.Exists(fileLoc)){
using (StreamWriter sw=new StreamWriter(fileLoc)){
sw.Write("Some sample text for the file");
}}

با استفاده از کدی که در این قسمت قرار داده شده می توان عبارتی را به فایل متنی اضافه کرد. در اینجا ابتدا صحت وجود فایل بررسی می شود و در صورت موجود بودن فایل آن را باز کرده و متن مورد نظر را به آن اضافه می کند.

خواندن از فایل متنی

string fileLoc=@"D:\sample1.txt";
if (File.Exists(fileLoc)){
using (TextReader tr=new StreamReader(fileLoc)){
MessageBox.Show(tr.ReadLine());}}


در اینجا نیز قطعه کد قرار داده شده عملیات خواند از فایل متنی و چاپ متن را بر عهده دارد به این صورت که ابتدا فایل مورد نظر را پیدا کرده در صورتی که وجود داشت متن موجود در آن را خوانده و بصورت پیغام چاپ می کند.

aradrobo
یک شنبه 02 تیر 1392, 16:47 عصر
کپی کردن فایل متنی


string fileLoc=@"D:\sample1.txt";
string fileLocCopy=@"E:\sample1.txt";
if (File.Exists(fileLoc)){
if (File.Exists(fileLocCopy))
File.Delete(fileLocCopy);
File.Copy(fileLoc, fileLocCopy);}


در اینجا عملیات کپی کرد فایل از محلی در سیستم به محل دیگر انجام می شود به این صورت که ابتدا مسیر فایل ابتدایی و مکانی که قرار است فایل در آنجا کپی شود را مشخص می کنیم ، سپس از وجود فایل مبدأ که مطمئن شدیم باید بررسی کنیم که فایل در مقصد نیز وجود دارد یا خیر، در صورتی که وجود داشت آن را پاک کرده و فایل مبدأ را جایگزین آن می کنیم در غیر این صورت هم مستقیماً فایل را در محل مورد نظر کپی می کنیم.

aradrobo
یک شنبه 02 تیر 1392, 16:49 عصر
جابجا کردن فایل متنی


string fileLoc=@"D:\sample1.txt";
string fileLocMove=@"E:\sample1" + System.DateTime.Now.Ticks + ".txt";
if (File.Exists(fileLoc)) File.Move(fileLoc, fileLocMove);



همان طور که مشاهده می کنید برای جابجا کردن فایل های متنی روش دیگری استفاده شده است به این صورت که زمانی که مسیر مقصد را برای جابجایی می خواهیم تعیین کنیم از پارامتر زمان نیز بهره میگیریم تا نام فایل بعد از جابجایی با نام فایل های مقصد یکی نباشد، در غیر این صورت می توانید با استفاده از روش قبل نام فایل را در مقصد بررسی کرده و در صورت وجود آن را حذف نمائید. در اینجا نیز بعد از اینکه وجود فایل مبدأ بررسی شد، آن را تغییر نام داده و به محل دیگری منتقل می کنیم.

حذف فایل متنی


string fileLoc=@"D:\sample1.txt";
if (File.Exists(fileLoc)) File.Delete(fileLoc);



در آخر هم نوبت به حذف فایل می رسد و همان طور که مشخص است تنها کافی است که صحت وجود فایل بررسی شود و در صورت وجود آن را حذف نمائیم.

برای کار با فایل ها بهتر است از مسیری استفاده کنید که دسترسی به آن محدود نباشد. در سیستم عامل های جدید درایو C از محدودیت های امنیتی برخوردار است.

intel_amd
یک شنبه 02 تیر 1392, 17:02 عصر
از آموزش ها ممنون اگر میشه آموزش اینکه چجوری نرم افزاری که ساختیمو توسط هاستمون بشه آپدیت کنیم هم بدین

aradrobo
یک شنبه 02 تیر 1392, 19:13 عصر
از آموزش ها ممنون اگر میشه آموزش اینکه چجوری نرم افزاری که ساختیمو توسط هاستمون بشه آپدیت کنیم هم بدین

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

aradrobo
پنج شنبه 06 تیر 1392, 16:09 عصر
بدست اوردن تصویر کپتچا

من از اين طريق تونستم كد Captcha ياهو(در قسمت ثبت نام) رو تو پيكچر باكس بريزم.
System.Net.WebClient w = new System.Net.WebClient();
byte[] b = w.DownloadData("https://ab.login.yahoo.com/img/p5bdAuJZFenzR6N6kIcGO3c0MQ20p_aAk6zbi0E0ziyIT0LZZR WNVivdaF3H_WHPq1UcPzWBGt._P6moWMuvuBPQDuW5RHMaPzWn .jpg");
PictureBox1.Image = Image.FromStream(new MemoryStream(b, 0, b.Length));

يا براي Gmail(كپچا در هنگامي كه پسورد رو اشتباه وارد مي كني):
System.Net.WebClient w = new System.Net.WebClient();
byte[] b = w.DownloadData("https://www.google.com/accounts/Captcha?ctoken=iCJBEtNYHL7cANd2d6l0g1iuAGIHHr8NVqa aXEhOzhhbynRirOauvVLldI1FH7gczP37ECNnqP-TadYx7e2rU1p0gOrii_Svkm8FCvXv64k-hZ_GeBPx_z_3yKslV3d4%3A-D1ihT4wH4Shs4BCaDtupA");
PictureBox1.Image = Image.FromStream(new MemoryStream(b, 0, b.Length));

در هر كدوم از كدا آدرس عكس Captcha رو از مرورگر كپي كردم و داخل آبجكت گذاشتم. البته شايد راه زياد جالي نباشه ولي خب تاحالا كه روي هر عكسي امتحان كردم عملي بوده. بازم بستگي به اين داره كه چجوري با اون عكس كپچا ارتباط برقرار كرده باشي.

intel_amd
پنج شنبه 06 تیر 1392, 19:40 عصر
ببخشید این آدرس آدرسه چیه؟ https://ab.login.yahoo.com/img/p5bdAuJZFenzR6N6kIcGO3c0MQ20p_aAk6zbi0E0ziyIT0LZZR WNVivdaF3H_WHPq1UcPzWBGt._P6moWMuvuBPQDuW5RHMaPzWn .jpg

aradrobo
جمعه 07 تیر 1392, 15:36 عصر
ببخشید این آدرس آدرسه چیه؟ https://ab.login.yahoo.com/img/p5bdAuJZFenzR6N6kIcGO3c0MQ20p_aAk6zbi0E0ziyIT0LZZR WNVivdaF3H_WHPq1UcPzWBGt._P6moWMuvuBPQDuW5RHMaPzWn .jpg

آدرس اون عکس هست. که باید تغییرش بدهید.