تاپیک جامع نکات در سی شارپ

 
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

تاپیک جامع نکات در سی شارپ

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

 

 

سوال و جواب ها هم در اینجا مطرح کنید





1. لطف کنید به هیچ وجه در این تاپیک سوالی نپرسید که منظم باشه و سوالاتتون رو فقط در تاپیکی که لینکشو گذاشتم مطرح کنید.
2. هر نکته ای در رابطه با این زبان میدونید که احساس میکنین بدرد میخوره هر چند نکتۀ کوچیکی هم باشه به همراه کد و توضیحات در پستتون ضمیمه کنید تا بقیۀ هم استفاده کنند. 
3. سوالی بود در این زمینه خصوصی مطرح کنید پاسخ میدم.

 

4. دوستان لطفا از دادن اسپم در این تاپیک خودداری کنید.


 

اولین نکته رو که چند روز پیش یکی از کاربران خصوصی داده بودند میزارم 

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


روی فرم دو شی قرار میدیم یکی textbox و lable و در رویداد تکست باکس این کد رو مینویسیم ، هرچی تو باکس وارد کنید حروف یا عدد تو لیبل چاپ میشه به همین راحتی
 

کد PHP:
private void textBox1_TextChanged(object senderEventArgs e
        { 
             
        
label1.Text textBox1.Text
        }  
 

 

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:56 AM
تشکرات از این پست
saeidfarajpour
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

1- نمایش دایرکتوری پروژه 
کد:
label1.Text = Environment.CurrentDirectory;
2-نمایش درایوهای منطقی 
کد:
 string[] x = Environment.GetLogicalDrives();
            foreach (string s in x)
            {
                listBox1.Items.Add(s);
            }
3-نام کامپیوتر
کد:
label1.Text = Environment.MachineName;
4-ورژن سیستم عامل
کد:
label1.Text = Environment.OSVersion.ToString();
5-نمایش یوزر
کد:
label1.Text = Environment.UserName;

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:57 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

يدا كردن انديس كوچكترين خانه آرايه :
یه نکته خیلی کوچولو که شاید خیلیا بهش برخوردن و نتوستن کدشو بنویس
 
کد PHP:
x = Array.IndexOf(arrayname, arrayname.Min());  
 
ساخت یک ستون AutoNumber برای گرید ویو 
تو رویداد دیتا گرید ویوتون اینو بنویسین
 
کد PHP:
 private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
        { 
            dataGridView1.Rows[e.RowIndex].Cells[0].Value = e.RowIndex + 1; 
        }  
 
بدست آوردن زبان های نصب شده در سیستم 
کد PHP:
string s; 
foreach (InputLanguage Language in InputLanguage.InstalledInputLanguages) 
s = Language.LayoutName; 
listBox1.Items.Add(s); 
}  
 
بدست آوردن نام مودم سیستم 
برای دوستداران مودم و ...
کد PHP:
RegistryKey key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Ras\\Tapi Devices\\Unimodem"); 
string[] values = (string[])key.GetValue("Friendly Name"); 
comboBox1.Items.AddRange(values);  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:57 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

نمایش اطلاعات درون درایوها
کد:
private void Form1_Load(object sender, EventArgs e)
        {
            string[] Direc = Directory.GetLogicalDrives();
            comboBox1.Items.AddRange(Direc);
 
        }
 private void button1_Click_2(object sender, EventArgs e)
        {
            string[] inf = Directory.GetDirectories(comboBox1.Text);
            listBox1.Items.AddRange(inf);
        }
از AddRange برای اضافه کردن کل مقادیر آرایه استفاده می شود .
 
فارسی کردن کیبورد :
کد:
 InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("fa-IR"));
چک کردن اتصال به اینترنت
کد PHP:
 bool bb = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable(); 
 
            if (bb == true) 
                MessageBox.Show("Internet connections are available"); 
            else 
                MessageBox.Show("Internet connections are not available");  
نمایــش ساعت و تـاریخ ویندوز
کد PHP:
 label1.Text = Convert.ToString(DateTime.Now);  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:57 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

Drive Box
با این کد میتونید یه Drive Box به صورت Runtime ( در زمان اجرا ) داشته باشید.
کد PHP:
public void DriveBox_RunTime()
        {
            ComboBox Drive_Box = new ComboBox();
            Drive_Box.Size = new Size(100, 0);
            Drive_Box.DropDownStyle = ComboBoxStyle.DropDownList;
            this.Controls.Add(Drive_Box);
            //==================================================  ====
            foreach (DriveInfo DI in System.IO.DriveInfo.GetDrives())
            {
                Drive_Box.Items.Add(DI);
            }
 
        }  
 
سی دی در CDRom وجود دارد ؟ 
کد PHP:
foreach (ManagementObject mo in searcher.Get())
            {
                // If both properties are null I suppose there's no CD
                if ((mo["volumename"] != null) || (mo["volumeserialnumber"] != null))
                {
                    MessageBox.Show("The CD Is On Drive");
                    MessageBox.Show( mo["volumename"].ToString());
                    break;
                }
                else
                {
                    MessageBox.Show ("No CD in Unit");
                    break;
                }
            }
        }  
 
بدست آوردن ip هاست 
کد PHP:
using System.Net;  
کد PHP:
String strHostName  = Dns.GetHostName();
IPHostEntry ipEntry = Dns.GetHostEntry(strHostName);
IPAddress[] addr    = ipEntry.AddressList;  
 
به دست آوردن نام درایو ها
کد PHP:
public void Get_Drives_name()
        {
            string[] drv = Environment.GetLogicalDrives();
            string str = "";
            foreach (string s in drv)
            {
                str += s + "\n";
            }
            MessageBox.Show(str);
        }  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:57 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

Arrow بدست آوردن سطر جاری در ديتاگريدويو 
کد PHP:
public DataRow GetCurrentRow(DataGridView dgv)
{
    DataRowView drv = null;
    try
    {
        if (dgv.CurrentRow == null) { return null; }
        if (dgv.CurrentRow.DataBoundItem == null) { return null; }
        drv = (DataRowView)dgv.CurrentRow.DataBoundItem;
    }
    catch
    {
        return null;
    }
    return drv.Row;
}  
---------------------------------------------------------
 
تاریخ و زمان سیستم 
کد PHP:
DateTime mytime = newDateTime();
string time;
mytime = DateTime.Now;
time = mytime.ToString("F");
MessageBox.Show(time);  
---------------------------------------------------------
 
برعکس کردن ترتیب آیتم های یک آرایه 
کد PHP:
int[] someArray = new int[5] { 1, 2, 3, 4, 5 };
Array.Reverse(someArray);  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:57 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

اطمینان از برقراری اتصال به پایگاه داده 
کد PHP:
private void بررسی اتصالToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string ConString = @"Data Source=studio;Initial Catalog=Uni_shomal;Integrated Security=True";
 
            SqlConnection conn = new SqlConnection(ConString);
            try
            {
                conn.Open();
                MessageBox.Show("اتصال به پایگاه داده با موفقیت انجام شده است ", ">>>>  بررسی اتصال <<<<");
            }
            catch (SqlException s)
            {
                MessageBox.Show(" اتصال به پایگاه داده انجام نشده است ", ">>>> خطای اتصال <<<<" + s);
            }
            finally
            {
                conn.Close();
            }
        }  
---------------------------------------------------------
 
ذخیره و بازیابی عکس در sql server 
کد PHP:
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
    MemoryStream ms = new MemoryStream();
    imageIn.Save(ms,System.Drawing.Imaging.ImageFormat  .Gif);
    return  ms.ToArray();
}
 
public Image byteArrayToImage(byte[] byteArrayIn)
{
     MemoryStream ms = new MemoryStream(byteArrayIn);
     Image returnImage = Image.FromStream(ms);
     return returnImage;
}  
---------------------------------------------------------
 
Decrypt کردن ConnectionString ها موجود در فایل app.Config 
 
انشاالله که مفید هست برای دوستان
 
برای App.Config
کد PHP:
onfiguration config = ConfigurationManager.OpenExeConfiguration(Configur  ationUserLevel.None);
            config.ConnectionStrings.SectionInformation.ForceS  ave = true;
            config.ConnectionStrings.SectionInformation.Unprot  ectSection();
            config.Save();  
برای Web.Config
کد PHP:
Configuration config = WebConfigurationManager.OpenWebConfiguration("myWe  bSite");
            config.ConnectionStrings.SectionInformation.ForceS  ave = true;
            config.ConnectionStrings.SectionInformation.Unprot  ectSection();
            config.Save();  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:57 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

بستن یک پروسه در حال اجرا 
مثلا : notepad
کد PHP:
using System.Diagnostics; 
  
foreach (Process p in Process.GetProcesses()) 
    if (p.ProcessName.ToLower() == "notepad") 
        p.Kill(); 
}  
---------------------------------------------------------
 
بدست آوردن نام کامپیوتر، نام کاربر جاری و ... 
کد PHP:
string pcName = Environment.MachineName; 
  
string currentUser = Environment.UserName; 
  
string system32 = Environment.SystemDirectory; 
  
string osVersion = Environment.OSVersion; 
  
string domain = Environment.UserDomainName; 
  
int cpuCount = Environment.ProcessorCount;  
---------------------------------------------------------
 
نحوه ی ایجاد و تخصیص ToolTip در زمان اجرا 
کد PHP:
private void Form1_Load(object sender, EventArgs e) 
    ToolTip toolTip = new ToolTip(); 
    toolTip.SetToolTip(button1, "Salam"); 
}  
---------------------------------------------------------
 
سوییچ کردن بین حالتهای مختلف یک ListView 
کد PHP:
private void button2_Click(object sender, EventArgs e) 
    int n = (int) listView1.View; 
    if (n == 4) 
        n = -1; 
    listView1.View = (View)Enum.ToObject(typeof(View), ++n); 
}  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:57 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

بازکردن فایلexeپشت باتن
کد PHP:
 
Código: 
 
 private void button1_Click(object sender, EventArgs e) 
        { 
            string str = @"C:\Documents and Settings\Desktop\server.exe"; 
            Process process = new Process(); 
            process.StartInfo.FileName = str; 
            process.Start(); 
        }  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:58 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

پاک کردن هم زمان تمام TextBox ها 
بعضی وقتا تعداد TextBox ها توی فرمتون خیلی زیاده و سخته که هر بار تمام اونها رو پاک کنید پس از روش زیر استفاده کنید تا تمام TextBox ها را یکجا پاک کنید.
کد PHP:
public void ClearTextBoxs() 
      { 
          foreach (Control txt in this.Controls) 
          { 
              if (txt.GetType().Name == "TextBox") 
                  txt.Text = ""; 
          } 
}  
---------------------------------------------------------
 
دسترسی به بعضی قسمت های ویندوز با shell32 
کد PHP:
using Shell32;  
کد PHP:
private void Form1_Load(object sender, EventArgs e) 
       { 
           listBox2.Items.Add("access.cpl"); 
  
           listBox2.Items.Add("appwiz.cpl"); 
  
           listBox2.Items.Add("btcpl.cpl"); 
  
           listBox2.Items.Add("desk.cpl"); 
  
           listBox2.Items.Add("directx.cpl"); 
  
           listBox2.Items.Add("hdwwiz.cpl"); 
  
           listBox2.Items.Add("inetcpl.cpl"); 
  
           listBox2.Items.Add("intl.cpl"); 
  
           listBox2.Items.Add("irprops.cpl");  
  
       }  
کد PHP:
private void button1_Click(object sender, EventArgs e) 
        { 
  
            objshell.ControlPanelItem(listBox2.SelectedItem.To  String()); 
  
        }  
---------------------------------------------------------
 
window 
با استفاده از این api میتونید هر پنجره ای رو که خواستید قفل کنید
کد PHP:
[DllImport("user32.dll")] 
private static extern int EnableWindow(int hwnd, int fEnable); 
  
int i = this.Handle.ToInt32(); 
  
int u= EnableWindow(i, 1);  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:58 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

اضافه کردن تاریخ به دیتابیس 
من خودم این مشکل رو زیاد داشتم .
Datatype ستون جدول را بجای این که Date قرار بدیم از NVarchar استفاده می کنیم ./
 
کد PHP:
Tbl_Test Table = new Tbl_Test 
            { 
                ID=int.Parse(textBox1.Text), 
                Date=Convert.ToString(textBox2.Text) 
            }; 
            Database.Tbl_Test.Add(Table); 
            Database.SaveChanges(); 
 
            dataGridView1.DataSource = Database.Tbl_Test.ToList();  
------------------------------------------------------------------
 
نمایش مقادیر در دیتاگرید با اعمال شرط 
عملگر Where برای پرس و جو
 
عملگر Select با کلمه کلیدی New برای نمایش تعداد خاصی از فیلدها
 
کد PHP:
ResalatEntities myDatabase = new ResalatEntities(); 
        /* 
         * Table = People 
         */ 
var Query = from p in myDatabase.People where p.کلاس == 31 select new { p.نام, p.نام_خانوادگی }; 
            dataGridView1.DataSource = Query.ToList();  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:58 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

پرش از تعدادی عنصر 
کد PHP:
List<int> list2 = new List<int> { 6, 7, 12, 18, 2 }; 
           List<int> list3 = list2.Skip(2).ToList<int>();//12,18,2  
---------------------------------------------------------
 
 
استفاده از دستور ()Array.Clone برای کپی کردن یک آرایه در یک آرایه دیگر
کد PHP:
using System; 
 
class CloneArray 
   public static void Main() 
   { 
      string[] array1 = {"a", "b", "c"}; 
      string[] array2 = (string[]) array1.Clone(); 
      DumpArray ("Original array: ", array1); 
      DumpArray ("Cloned   array: ", array2); 
   } 
 
   private static void DumpArray (string title, string[] array) 
   { 
      Console.Write (title); 
      foreach (string s in array) 
      { 
         Console.Write ("{0} ", s); 
      } 
      Console.WriteLine(); 
   }  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:58 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

Arrow استفاده از دوربین گوشی در ویندوز فون
سلام دوستان این یه نمونه کد هست که مفید هست در سی شارپ نوشتمش براتون قرار میدم
 
اول فضای نام رو میدیم به برنامه
 
کد PHP:
using Microsoft.Phone.Tasks;  
سپس متغیری را از نوع CameraCaptureTask تعریف می کنیم
 
کد PHP:
CameraCaptureTask cameraCaptureTask;  
کد سازنده پیج را به صورت زیر تغییر می دهیم
 
کد PHP:
public Camera() 
 
 
InitializeComponent(); 
 
cameraCaptureTask = new CameraCaptureTask(); 
 
cameraCaptureTask.Completed += new EventHandler(cameraCaptureTask_Completed); 
 
}  
سپس کد زیر را که برای بازیابی عکس گرفته شده که در درون حافظه گوشی قرار دارد ، را می نویسیم
کد PHP:
void cameraCaptureTask_Completed(object sender, PhotoResult e) 
 
 
if (e.TaskResult == TaskResult.OK) 
 
 
System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage(); 
 
bmp.SetSource(e.ChosenPhoto); 
 
//Load to Image Control 
 
image1.Source = bmp; 
 
 
}  
و در نهایت فقط لازمه CameraCaptureTask رو فراخوانی کنیم
کد PHP:
try 
 
 
cameraCaptureTask.Show(); 
 
 
catch (System.InvalidOperationException ex) 
 
 
MessageBox.Show("An error occurred."); 
 
}  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:58 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

Arrow مثالی ساده از linq ، که از یک آرایه اعداد زوج را انتخاب می کند
کد PHP:
int[] a = { 2, 1, 3, 6, 5, 8 }; 
var QResults = from n in a 
where n % 2 == 0 
select n; 
string s = ""; 
foreach (var item in QResults) 
s += item.ToString()+"\n"; 
MessageBox.Show(s);  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:58 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 150653
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:تاپیک جامع نکات در سی شارپ

Arrow تابع IsNumeric
کد PHP:
staticbool IsNumeric(object Expression) 
bool isNum; 
double retNum; 
isNum = Double.TryParse(Convert.ToString(Expression), System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum); 
return isNum; 
}  
برای یک textBox
 
کد PHP:
bool IsNumber = IsNumeric(textBox1.Text);  

💮 صبور باش 💮
 🌱چیزایِ خوب زمان می برن🌱

سه شنبه 22 اردیبهشت 1394  1:58 AM
تشکرات از این پست
دسترسی سریع به انجمن ها