برگزیده های پرشین تولز

نکته های مفید سی شارپ

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
تولید اعداد تصادفی "تقریبا یکتا توسط کلاس Guid و با دستورات LINQ

کد:
string Random_Int()
        {
            char[] a = (from ch in Guid.NewGuid().ToString().ToCharArray().OfType<cha  r>()
                        where char.IsDigit(ch)
                        select ch).ToArray();
            string str = new string(a);
            return str;
        }
 

HoP

همکار بازنشسته
تاریخ عضویت
15 اکتبر 2010
نوشته‌ها
2,135
لایک‌ها
2,422
آقا کارت درسته..ادامه بده... وقتی میبینم به نفر تو این کویر لوت(بخش برنامه نویسی)فعالیت میکنه کلی خوشحال میشم
47b20s0.gif

موفق باشی
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
آقا کارت درسته..ادامه بده... وقتی میبینم به نفر تو این کویر لوت(بخش برنامه نویسی)فعالیت میکنه کلی خوشحال میشم
47b20s0.gif

موفق باشی

ممنون دوست عزیز :rolleyes:
ولی کیه که قدر بدونه:(
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
تبدیل یک عکس به معادل GrayScale (تبدیل عکس رنگی به سیاه سفید) آن بصورت خیلی ساده و بهینه
کد:
blic  Bitmap GrayScale_Maker(Bitmap bmp)
        {
            Bitmap res = new Bitmap(bmp.Width, bmp.Height);
            for (int i = 0; i < bmp.Height; i++)
            {
                for (int j = 0; j < bmp.Width; j++)
                {
                    Color cr = bmp.GetPixel(j, i);
                    int code = (int)((cr.R + cr.B + cr.G) / 3);
                    res.SetPixel(j, i, Color.FromArgb(code, code, code));
                }
            }
            return res;
        }
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
با کدهای زیر شما میتونید یک رشته و یک پیکچر باکس رو معرفی بکنید و رشته تبدیل به عکس بشه

کد:
public void RenderRainbowText(string Text, PictureBox pb)
{
    // PictureBox needs an image to draw on
    pb.Image = new Bitmap(pb.Width, pb.Height);
    using (Graphics g = Graphics.FromImage(pb.Image))
    {
        // create all-white background for drawing
        SolidBrush brush = new SolidBrush(Color.White);
        g.FillRectangle(brush, 0, 0,
            pb.Image.Width, pb.Image.Height);
        // draw comma-delimited elements in multiple colors
        string[] chunks = Text.Split(',');
        brush = new SolidBrush(Color.Black);
        SolidBrush[] brushes = new SolidBrush[] { 
    new SolidBrush(Color.Red),
    new SolidBrush(Color.Green),
    new SolidBrush(Color.Blue),
    new SolidBrush(Color.Purple) };
        float x = 0;
        for (int i = 0; i < chunks.Length; i++)
        {
            // draw text in whatever color
            g.DrawString(chunks[i], pb.Font, brushes[i], x, 0);
            // measure text and advance x
            x += (g.MeasureString(chunks[i], pb.Font)).Width;
            // draw the comma back in, in black
            if (i < (chunks.Length - 1))
            {
                g.DrawString(",", pb.Font, brush, x, 0);
                x += (g.MeasureString(",", pb.Font)).Width;
            }
        }
    }
}

طرز استفاده :
کد:
private void button1_Click(object sender, EventArgs e)
   {
       RenderRainbowText("   mojtaba,Dinarvand  ", pictureBox1);
   }
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
آموزش رسم نمودار در سی شارپ به وسیله MSCHART
 

فایل های ضمیمه

  • mschart.zip
    176.5 KB · نمایش ها: 108

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
سلام
ی سوال دارم اگه کسی جواب بده ممنون میشم
من چی کار کنم که توی سی شارپ بعد از اینکه برنامه ام را نوشتم به جای اینکه برام فایل exe بسازه فایل اسمبلی بسازه
آخه استاد ما گفته با c# برنامه بنویسید بعد ببینید کد اسمبلی اون چطوریه و تفسیرش کنید

لطفا در تاپیکی جداگونه سوال خود را مطرح کنید
 

jojotala

Registered User
تاریخ عضویت
22 سپتامبر 2008
نوشته‌ها
1,435
لایک‌ها
183
محل سکونت
Iran-Tehran

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
کشیدن لایه شفاف با رنگ دلخواه بر روی عکس
کد:
using System.Drawing.Drawing2D;

privatestaticImage fill_layer(PictureBox Pic_Box,Image img,Color Layer_color,int Percent)
{
//از img به عنوان بک آپ استفاده می شود
//percent درصد شفافیت است
Pic_Box.Image = img;
Bitmap bmp_img = newBitmap(Pic_Box.Image);
Graphics ghp = Graphics.FromImage(bmp_img);
LinearGradientBrush LineaBrush;
LineaBrush = newLinearGradientBrush(newRectangle(0, 0, bmp_img.Width, bmp_img.Height), Color.FromArgb(Percent, Layer_color), Color.FromArgb(Percent, Layer_color), LinearGradientMode.BackwardDiagonal);
ghp.FillRectangle(LineaBrush, newRectangle(0, 0, bmp_img.Width, bmp_img.Height));
return (Image)bmp_img;
}

pictureBox1.Image = fill_layer(pictureBox1,pictureBox2.Image, Color,Value);
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
مشکل رسم مستطیل با ماوس

کد:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication19
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        Point startPos;
        Point currentPos;
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            startPos = startPos = e.Location;
        }
 
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                currentPos = e.Location;
                this.Invalidate();
            }
        }
 
        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
 
        }
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawRectangle(new Pen(Color.Red), Math.Min(startPos.X, currentPos.X), Math.Min(startPos.Y, currentPos.Y), Math.Abs(startPos.X - currentPos.X), Math.Abs(startPos.Y - currentPos.Y));
        }
    }
}
 

Roby

کاربر فعال فوتبال<br> عضو تحریریه مجله فوتبال
کاربر فعال
تاریخ عضویت
20 ژوئن 2005
نوشته‌ها
1,263
لایک‌ها
1,395
خواستم یک تشکری بکنم از وقتی که میزارید و مطالب خوبتون
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
خواستم یک تشکری بکنم از وقتی که میزارید و مطالب خوبتون

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

--------


حرکت بین کنترلها با Enter
با کد زیر میتوانید با زدن کلید Enter به یک کنترل دیگر بروید.
برای مثال من از دو Textbox استفاده کرده‌ام.پس روی هر Textbox که Enter بزنم به Textbox بعدی میروم. (این کدها را در رویداد KeyDown مربوط به Textbox بنویسید)
رفتن از Texbox1 به Textbox2 :
( if e.KeyValue == 13)
;()textBox2.Focus
رفتن از Texbox2 به Textbox1 :


( if e.KeyValue == 13)
;()textBox1.Focus


[عدد 13 کد اسکی کلید Enter است.شما میتوانید از هر کد اسکی برای کلید دیگر استفاده کنید.]
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
لود شدن سریع ویژوال استدیو
برای اینکه VS سریع لود شه و صفحه Splash رو نشون نده

روی آیکون اون راست کلیک کرده و تو قسمت Target یا Location بعد از مسیر فایل اجرایی اون یه nosplash/ قرار
بدید.

نمونه :
"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" /nosplash
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
مبحث فایلها یک از جذابترین موضوعات در سی شارپ است.در این پست قصد دارم نحوه مخفی کردن و نمایش فایل مخفی را به زبان سی شارپ توضیح دهم.البته کد بسیار ساده ای دارد.
خوب, چون از فایل میخواهیم استفاده کنیم ابتدا فضای نام System.IO را به برنامه اضافه میکنیم.یک شی از کلاس FileInfo درست کرده و به آن مسیر فایلی را که میخواهیم مخفی کنیم به آن میدهیم مانند کد زیر:
FileInfo file;
file = new FileInfo("مسیر فایل");

برای مخفی کردن فایل از کد زیر استفاده میکنیم:
file.Attributes = FileAttributes.Hidden;

برای آنکه فایل مخفی شده ظاهر شود و از حالت Hidden بیرون بیاید از کد زیر استفاده میکنیم:

file.Attributes = ~FileAttributes.Hidden;
 
Last edited:

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
فارسی کردن کیبورد بصورت خودکار

گاهی اطلاعات دریافتی از کاربران برای ثبت حتما باید فارسی باشد. مثل اطلاعاتی مانند نام و نام خانوادگی و ... که باید به صورت فارسی وارد گردند.
قطعه کدی در C# .net وجود دارد که نتیجه اجرای آن تغییر کیبورد سیستم از "EN" به "FA" و بالعکس است. این قطعه کد را می توان مثلا در هنگام ورود به جعبه متنی (Enter evenrt) که باید اطلاعات آن فارسی وارد شود استفاده کرد تا کاربر مجبور به تغییر کیبورد به صورت دستی نباشد (Alt + Shift) و سیستم به صورت آتوماتیک آماده ورود کاراکتر های فارسی گردد. پس از قرار دادن Textbox در فرم به رویداد Enter جعبه متن بروید و دابل کلیک کنید.سپس:
برای فارسی کردن:

System.Globalization.CultureInfo language = new System.Globalization.CultureInfo("fa-ir");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language);


برای انگلیسی کردن:

System.Globalization.CultureInfo language = new System.Globalization.CultureInfo("en-us");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language);
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
بعد از اضافه کردن DLL به پروژه‌تون و Using کردن CenteredMessageboxDemo، به این شکل میتونید ازش استقاده کنید


کد:
MsgBox.Show("Centered MessageBox.\nThis should be centered on it's parent form.", "CenteredMessageboxDemo", MessageBoxButtons.OK, MessageBoxIcon.Information);
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
نحوه باز کردن یک برنامه و مطلع شدن از باز یا بسته بودن آن توسط Process

برای انجام این کار ابتدا استفاده از Using زیر

کد:
using System.Diagnostics;

و سپس قرار دادن کد زیر

کد:
Process p = new Process();
ProcessStartInfo pI = new ProcessStartInfo();
pI.FileName = Environment.SystemDirectory + @"\notepad.exe";
pI.UseShellExecute = false;
pI.CreateNoWindow = true;
p.StartInfo = pI;
p.Start();
 
//برای مطلع شدن از باز بودن برنامه و نمایش نوشته دلخواه در لیبل
p.WaitForInputIdle();
label1.Text = "Open";
 
 
//برای مطلع شدن از خروج برنامه و نمایش نوشته دلخواه در لیبل
p.WaitForExit();
/*برای بسته شدن برنامه در زمان دلخواه از کد زیر به جای کد بالا استفاده کنید
p.WaitForExit(Input milisecond);
p.Kill();*/
label1.Text = "Close";
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
استفاده از speech خود system

1-ایتدا ارجاع(رفرنس) system.speech رو از تب. نت به رفرنس های پروژه اضاف می کنیم.
2- فضای نام(name Space) زیر رو به فضای نام هایمان اضافه می کنیم،

کد:
using System.Speech.Synthesis;

3-یک SpeechSynthesizer به شکل زیر به برناممون تعریف می کنیم:

کد:
public  SpeechSynthesizer speeker = new SpeechSynthesizer();

سپس برای سپیک کردن بدین شکل عمل می کنیم:

کد:
void speek()
{
    speeker.Speak("//Your Text Here");
}

برای تنظیم صدا: (100-0)
کد:
speeker.Volume = 100;

و برای تنظیم سرعت صحبت: (-10 الی 10)
کد:
speeker.Rate =-3;
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
به مناسبت 2000 ام پستی که توی پرشن تولز دادم :D

نحوه باز کردن یک برنامه و مطلع شدن از باز یا بسته بودن آن توسط Process
برای انجام این کار ابتدا استفاده از Using زیر

کد:
using System.Diagnostics;

و سپس قرار دادن کد زیر در هر جایی که دوست دارید
کد:
Process p = new Process();
ProcessStartInfo pI = new ProcessStartInfo();
pI.FileName = Environment.SystemDirectory + @"\notepad.exe";
pI.UseShellExecute = false;
pI.CreateNoWindow = true;
p.StartInfo = pI;
p.Start();
 
//برای مطلع شدن از باز بودن برنامه و نمایش نوشته دلخواه در لیبل
p.WaitForInputIdle();
label1.Text = "Open";
 
 
//برای مطلع شدن از خروج برنامه و نمایش نوشته دلخواه در لیبل
p.WaitForExit();
/*برای بسته شدن برنامه در زمان دلخواه از کد زیر به جای کد بالا استفاده کنید
p.WaitForExit(Input milisecond);
p.Kill();*/
label1.Text = "Close";


با استفاده از کد زیر شما می توانید هر برنامه دیگری را به جای NotePad اجرا کنید

کد:
pI.FileName = "آدرس برنامه";
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
توابع Params در # C
یک تابع می تواند به تعداد نامحدود پارامتر دریافت کند برای اینکار از دستور Params در تعریف پارامترها استفاده می شود به مثال زیر توجه کنید :
کد:
public static long Sum(params int[] numbers)
{
        long Result = 0;
        foreach (int number in numbers)
        {
            Result += number;
        }
        return Result;
}
 
بالا