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

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

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
چک کردن ورودی کاربر برای مقادیر عددی
یکی از روش های گرفتن مقادیر عددی برای ورودی استفاده از MaskedTextBox هست. روش دیگه استفاده از متد TryParse هست. این تابع دو پارامتر برای ورودی مگیره، یکی رشته ای که باید تبدیل بشه و دیگری متغییری که عدد تبدیل شده باید داخلش ذخیره بشه. این تابع مقداری از نوع bool بر میگردونه.

کد:
Console.Write("Enter a number for check: ");
            int i = 0;
            string inputNumber = Console.ReadLine();            
            if (int.TryParse(inputNumber, out i))
            {
                Console.WriteLine("Valid format");
            }
            else
            {
                Console.WriteLine("Not valid format");
            }
            Console.ReadKey()
 

>-->O

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

کد:
int start = 0;
        int indexOfSearchText = 0;

        private void button1_Click(object sender, EventArgs e)
        {
            int startindex = 0;

            if (txtSearch.Text.Length > 0)
                startindex = FindMyText(txtSearch.Text.Trim(), start, rtb.Text.Length);

            if (startindex >= 0)
            {
                rtb.SelectionColor = Color.Red;
                
                int endindex = txtSearch.Text.Length;
                
                rtb.Select(startindex, endindex);
                
                start = startindex + endindex;
            }
        }

        private int FindMyText(string txtToSearch, int searchStart, int searchEnd)
        {
            
            if (searchStart > 0 && searchEnd > 0 && indexOfSearchText >= 0)
            {
                rtb.Undo();
            }


            int retVal = -1;

            
            if (searchStart >= 0 && indexOfSearchText >= 0)
            {
                
                if (searchEnd > searchStart || searchEnd == -1)
                {
                    
                    indexOfSearchText = rtb.Find(txtToSearch, searchStart, searchEnd, RichTextBoxFinds.None);
                    
                    if (indexOfSearchText != -1)
                    {
                    
                        retVal = indexOfSearchText;
                    }
                }
            }
            return retVal;
        }
 

>-->O

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

PHP:
public class NumberToString
  {  
    private static string[] yakan = new string[10] { "صفر", "يک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه" };  
    private static string[] dahgan = new string[10] { "", "", "بيست", "سي", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود" };  
    private static string[] dahyek = new string[10] { "ده", "يازده", "دوازده", "سيزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده" };    
    private static string[] sadgan = new string[10] { "", "يکصد", "دوصد", "سيصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد" };  
    private static string[] basex = new string[5] { "", "هزار", "ميليون", "ميليارد", "تريليون" };  
  
  
    private static string getnum3(int num3)  
    {  
      string s = "";  
      int d3, d12;  
      d12 = num3 % 100;  
      d3 = num3 / 100;  
      if (d3 != 0)  
        s = sadgan[d3] + " و ";  
      if ((d12 >= 10) && (d12 <= 19))  
      {  
        s = s + dahyek[d12 - 10];  
      }  
      else  
      {  
        int d2 = d12 / 10;  
        if (d2 != 0)  
          s = s + dahgan[d2] + " و ";  
        int d1 = d12 % 10;  
        if (d1 != 0)  
          s = s + yakan[d1] + " و ";  
        s = s.Substring(0, s.Length - 3);  
      };  
      return s;  
    }  
  
    public string num2str(string snum)  
    {  
      string stotal = "";  
      if (snum == "0")  
      {  
        return yakan[0];  
      }  
      else  
      {  
        snum = snum.PadLeft(((snum.Length - 1) / 3 + 1) * 3, '0');  
        int L = snum.Length / 3 - 1;  
        for (int i = 0; i <= L; i++)  
        {  
          int b = int.Parse(snum.Substring(i * 3, 3));  
          if (b != 0)  
            stotal = stotal + getnum3(b) + " " + basex[L - i] + " و ";  
        }  
        stotal = stotal.Substring(0, stotal.Length - 3);  
      }  
      return stotal;  
    }

}
 

>-->O

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


کد:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
  e.Control.TextChanged += MyDataGridTextChanged;
}
private void MyDataGridTextChanged(object sender, EventArgs e)
{
   MessageBox.Show(((Control)sender).Text);
}
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
افزودن خاصیت Radio Button به یک Listview
ابتدا خاصیت CkeckBoxes رادر Listview برابر با True قرار دهید.سپس کدهای زیر را در متد رویداد ItemChecked بنویسید.

کد:
private  int LastIndexChecked;
 private void listView1_ItemChecked(object sender, ItemCheckedEventArgs e)
        {

            if (listView1.CheckedIndices.Count==2)
            {
                //UnCheck before Item.
                listView1.Items[LastIndexChecked].Checked = false;

                //set Last index selected.
                LastIndexChecked = listView1.CheckedIndices[0];
            }
            else
                //for first step.
                if(listView1.CheckedIndices.Count==1)
                {                    
                    LastIndexChecked = listView1.CheckedIndices[0];  
                }
        }
 

>-->O

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

کد:
System.IO.File.Move("File Name", "New File Name");

توجه کنید که آدرس های File Name و New File Name باید یکسان باشد.
برای مثال عکسی با نام Picture1 را به Picture2 تغییر میدهیم:

کد:
System.IO.File.Move(@"C:\Picture1.jpg",@"C:\Picture2.jpg");
 

>-->O

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

توسط یک متد :

کد:
bool str_is_digit(string str)
{
bool res = true;
foreach (char c in str)
{
if (!char.IsDigit(c))
{
res = false;
break;
}
}
return res;
}
 

>-->O

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

کد:
x = Array.IndexOf(arrayname, arrayname.Min());
 

hamidk

Registered User
تاریخ عضویت
12 فوریه 2004
نوشته‌ها
1,100
لایک‌ها
144
سن
43
محل سکونت
تهران
متاسفانه اینجا دکمه تشکر نداره و پست زدن هم باعث میشه که انسجام پست های شما ازبین برود
ممنون و لطفاً ادامه بدهید بسیار استفاده کردیم و پیگیر هستیم
 

>-->O

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


کد:
using Microsoft.Win32;

کد:
private void AddStartUpKey(string _name, string  _path)
{
    RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
    key.SetValue(_name, _path);
}

private void RemoveStartUpKey(string _name)
{
    RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
    key.DeleteValue(_name, false);
}
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
Hibernate و Standby کردن کامپیوتر
کد:
// Hibernate
Application.SetSuspendState(PowerState.Hibernate, true, true);

// Standby
Application.SetSuspendState(PowerState.Suspend, true, true);
 

>-->O

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

کد:
[DllImport("user32.dll")]
public static extern void LockWorkStation()

// Lock workstation
LockWorkStation();
 

>-->O

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

کد:
control.BackColor = Color.Transparent;
تعیین میزان شفافیت یک کنترل:

کد:
control.BackColor = Color.FromArgb(trancparency, control.BackColor);
در کد بالا مقدار trancparency از 0 (برای کاملا شفاف) تا 255 (کاملا کدر) قابل تغییر است.

مثال : یک Label با شفافیت 50%

کد:
label1.BackColor = Color.FromArgb(127, label1.BackColor);
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
Shutdown، Restart و Logoff کردن یک کامپیوتر بوسیله کد
کد:
[DllImport("user32.dll")]
public static extern int ExitWindowsEx(int uFlags, int dwReason);        

// Log Off
ExitWindowsEx(0, 0);

// Reboot
ExitWindowsEx(2, 0);

// Shutdown
ExitWindowsEx(1, 0);

// Force LogOff
ExitWindowsEx(4, 0);

و یا:

کد:
// Log Off
System.Diagnostics.Process.Start("ShutDown", "/l");

// Reboot
System.Diagnostics.Process.Start("ShutDown", "/r");

// Shutdown
System.Diagnostics.Process.Start("ShutDown", "/s");
 

>-->O

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

foreach (Process p in Process.GetProcesses())
{
    if (p.ProcessName.ToLower() == "notepad")
        p.Kill();
}


و یا :
کد:
System.Diagnostics.Process.Start("TaskKill", "/f /im Notepad.exe /t");
 

>-->O

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


private void button2_Click(object sender, EventArgs e)
{
    string remoteMachineNameOrIP = "127.0.0.1";
    int timeOut = 5;
    Ping ping = new Ping();
    // Pinging remote maching
    PingReply reply = ping.Send(remoteMachineNameOrIP, timeOut);
    // Displaying the result
    StringBuilder sb = new StringBuilder();
    sb.Append("Address:" + reply.Address.ToString());
    sb.Append("\nStatus:" + reply.Status.ToString());
    sb.Append("\nRoundtripTime:" + reply.RoundtripTime.ToString());
    MessageBox.Show(sb.ToString(), "Ping Result: " + remoteMachineNameOrIP);
}
 
Last edited:

>-->O

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

کد:
SELECT TOP 8 id,title
FROM myTable
ORDER BY NEWID()
 

>-->O

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

کد:
using System.Data.Sql;

private void ShowSQLServerInstances()
{
    SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
    System.Data.DataTable table = instance.GetDataSources();
    dataGridView1.DataSource = (table);
}
 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
پاک کردن خاصیت Text گروهی از کنترلهای مشخص
کاربرد : زمانی که نمیتوان از یک الگوریتم بازگشتی استفاده کرد؛ برای مثال کنترلها در Container های متفاوتی هستند و تنها تعداد خاصی از آنها باید Clear شوند.


کد:
public void ClearControls(params Control[] ctls)
{
    foreach (Control ct in ctls)
        ct.Text = "";
}

private void button1_Click(object sender, EventArgs e)
{
    ClearControls(textBox1, textBox2, comboBox1);
}
 

>-->O

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

کد:
public void ClearControls(Control _parent)
{
    if (!_parent.HasChildren)
        _parent.Text = "";
    foreach (Control ct in _parent.Controls)
        ClearControls(ct);
}

private void button1_Click(object sender, EventArgs e)
{
    ClearControls(this);
}
 
بالا