جامعه برنامه نویس

برگشت   جامعه برنامه نویس > برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > برنامه نویسی در C#‎

اطلاعیه

برنامه نویسی در C#‎ برنامه برنامه نویسی با استفاده از زبان C#‎


پاسخ
 
ابزار های تاپیک طریقه نمایش
قدیمی شنبه 11 اسفند 1386, 11:11 صبح   #151
Masoud_TB
کاربر دائمی
 
آواتار Masoud_TB
 
تاریخ عضویت: آذر 1386
محل زندگی: Tehran
پست: 165
تشکرها: 5
1,425 بار تشکر شده در 95 پست

مدال های افتخار

Lightbulb آیا کاربر جاری Administrator هست؟

برای اینکه متوجه بشین که آیا کاربر جاری تون عضوی از گروه کاربران Administrator هست یا نه از این کد استفاده کنین:

کد:
WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(identity);
string role = "BUILTIN\\Administrators";
bool IsAdmin = principal.IsInRole(role));
Masoud_TB آفلاین است   پاسخ با نقل قول
2 کاربر از Masoud_TB به خاطر این مطلب مفید تشکر کرده اند:
قدیمی شنبه 11 اسفند 1386, 11:18 صبح   #152
Masoud_TB
کاربر دائمی
 
آواتار Masoud_TB
 
تاریخ عضویت: آذر 1386
محل زندگی: Tehran
پست: 165
تشکرها: 5
1,425 بار تشکر شده در 95 پست

مدال های افتخار

Lightbulb قرار دادن یک کنترل داخل منو

حتمالا دیدید که توی بعضی نرم افزار ها داخل یک منو آیتم یک کنترل وجود داره. مثلا یه منو که توی اون یک ComboBox نشون داده می شود. یا هر کنترل دیگری شبیه به اون.
برای اینکار یه کلاسی وجود داره به نام ToolStripControlHost
شما می تونین با ساختن یک object از این کلاس و پاس کردن کنترل مورد نظر در Constructor اون و در نهایت اضافه کردن اون به مثلا Menu یا ContextMenu و یا Toolbar از اون استفاده کنین.
کد:
کد:
     private void Form1_Load(object sender, EventArgs e)
        {
            MonthCalendar picker = new MonthCalendar();
            picker.DateSelected += new DateRangeEventHandler(picker_DateSelected);
            ToolStripControlHost host = new ToolStripControlHost(picker);
            fileToolStripMenuItem.DropDownItems.Insert(2,host);
        }
        void picker_DateSelected(object sender, DateRangeEventArgs e)
        {
            MonthCalendar picker = ((MonthCalendar)sender);
            this.Text = picker.SelectionStart.ToString("yyyy/MMM/dd");
        }
نتیجه این کد بالا این تصویر می شود.
این سوال MCTS Windows 70-526 بود.
عکس های ضمیمه
نوع فایل: gif toolhost.GIF‏ (15.0 کیلوبایت, 463 دیدار)
Masoud_TB آفلاین است   پاسخ با نقل قول
12 کاربر از Masoud_TB به خاطر این مطلب مفید تشکر کرده اند:
قدیمی شنبه 11 اسفند 1386, 23:00 عصر   #153
az_farzaneh
کاربر تازه وارد
 
تاریخ عضویت: آبان 1386
پست: 78
تشکرها: 33
187 بار تشکر شده در 26 پست
یک مثال ساده از پیاده سازی delegate

فرض کنید متود ساده زیر را داریم و میخواهیم به عنوان پارامتر به متود دیگری ارسال کنیم
کد:
 public void DisplayNumber(int num)
     {
            MessageBox.Show(string.Format("The value is  {0}", num)); 
     }
ابتدا نوع داده ای جدیدی ازdelegate با همین signature یعنی از نوع void و با پارامتر ی از نوع int تعریف می کنیم:
کد:
public delegate void ProcessNumber(int number);
سپس متغیری از نوع داده ا ی delegate تعریف شده به صورت زیر اعلان میکنیم :
کد:
ProcessNumber pn = new ProcessNumber(DisplayNumber);
حال میتوان این متغیر را به عنوان پارامتر به هر متود دلخواهی صادر کرد (مثلا متود زیر):
کد:
public int MultiplyNumbers(int a, int b, ProcessNumber pn)
     {
           int op = a * b;
           pn(op);
           return op;
     }
با این فراخوانی :
کد:
MultiplyNumbers(4, 5, pn);
منبع:سری های آموزشی TestOut C#‎ for programmers
http://www.testout.com
فایل های ضمیمه
نوع فایل: rar Delegate.rar‏ (32.0 کیلوبایت, 711 دیدار)
az_farzaneh آفلاین است   پاسخ با نقل قول
7 کاربر از az_farzaneh به خاطر این مطلب مفید تشکر کرده اند:
قدیمی دوشنبه 13 اسفند 1386, 10:10 صبح   #154
sinpin
VIP
 
تاریخ عضویت: مرداد 1383
پست: 2,275
تشکرها: 276
3,448 بار تشکر شده در 733 پست
ارسال پیام از طریق Yahoo به sinpin
بدست آوردن خروجی دستورهای خط فرمان

کد:
using System.Diagnostics;
کد:
private static string CaptureCommandPromptOutput(string command, string argument)
{
    ProcessStartInfo info = new ProcessStartInfo(command, argument);
    info.RedirectStandardOutput = true;
    info.UseShellExecute = false;
    info.CreateNoWindow = true;
    Process p = new Process();
    p.StartInfo = info;
    p.Start();
    return p.StandardOutput.ReadToEnd();
}
مثال از نحوه استفاده :
کد:
richTextBox1.Text = CaptureCommandPromptOutput("cmd", "/c dir");
و یا :
کد:
richTextBox1.Text = CaptureCommandPromptOutput("Ping", "127.0.0.1");
sinpin آفلاین است   پاسخ با نقل قول
4 کاربر از sinpin به خاطر این مطلب مفید تشکر کرده اند:
قدیمی دوشنبه 13 اسفند 1386, 10:17 صبح   #155
sinpin
VIP
 
تاریخ عضویت: مرداد 1383
پست: 2,275
تشکرها: 276
3,448 بار تشکر شده در 733 پست
ارسال پیام از طریق Yahoo به sinpin
Map کردن درایوهای شبکه به کمک اجرای دستورات خط فرمان

کد:
using System.Diagnostics;
کد:
Process.Start("NET", @"USE U: \\127.0.0.1\Sinpin /PERSISTENT:YES");
sinpin آفلاین است   پاسخ با نقل قول
کاربرانی که به خاطر مطلب مفید sinpin از وی تشکر کرده‌اند:
قدیمی دوشنبه 13 اسفند 1386, 17:20 عصر   #156
Mahdi.Kiani
مدیر بخش
 
آواتار Mahdi.Kiani
 
تاریخ عضویت: فروردین 1387
پست: 1,265
تشکرها: 70
2,790 بار تشکر شده در 476 پست

مدال های افتخار

ارسال پیام از طریق Yahoo به Mahdi.Kiani ارسال پیام از طریق Skype™ به Mahdi.Kiani
به دست آوردن تعداد خطوط متن در یک textBox

API مربوطه

کد:
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
        static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
         const  uint EM_GETLINECOUNT = 0xBA;
        IntPtr wp=IntPtr.Zero;
        IntPtr lp=IntPtr.Zero;
طریقه استفاده
کد:
IntPtr lines = SendMessage(textBox1.Handle, EM_GETLINECOUNT,wp,lp);
            MessageBox.Show(lines.ToInt32().ToString());
نمونه برنامه
Mahdi.Kiani آفلاین است   پاسخ با نقل قول
5 کاربر از Mahdi.Kiani به خاطر این مطلب مفید تشکر کرده اند:
قدیمی دوشنبه 13 اسفند 1386, 18:12 عصر   #157
Mahdi.Kiani
مدیر بخش
 
آواتار Mahdi.Kiani
 
تاریخ عضویت: فروردین 1387
پست: 1,265
تشکرها: 70
2,790 بار تشکر شده در 476 پست

مدال های افتخار

ارسال پیام از طریق Yahoo به Mahdi.Kiani ارسال پیام از طریق Skype™ به Mahdi.Kiani
معرفی لینک دانلود چند فیلم آموزشی ساده در مورد...



1
Video How to: Creating a Simple Data Application

video summary

نقل قول:

Displaying data from a database on a Windows Form is easy with Visual Studio 2008. You can display data on forms in Windows applications by dragging items from the Data Sources window onto your form.

This video shows how to create an application that displays data from two related tables in a database. The following tasks are included in the process:

How to create a Windows-based application.

How to create and configure a dataset that is based on the Customers and Orders tables in the Northwind database by using the Data Source Configuration Wizard.

How to add controls to display data from the Customers table.

How to test the application, selecting different customers and verifying that the correct orders are shown for the selected customer.

How to modify data and save it back to the database.
watch the video

download the video

------------------------------------------------------------
2)
Creating an N-Tier Data Application
-------------------------------------------------------------
3)
Writing Queries in C#‎ (LINQ)
-----------------------------------------------------------
4)
Create a C#‎ WPF Application

--------------------------------------------------




اطلاعات مربوط به ویدئو های 2 تا 4 را با کلیک کردن بر روی آن ها می تونید مشاهده کنید.
Mahdi.Kiani آفلاین است   پاسخ با نقل قول
5 کاربر از Mahdi.Kiani به خاطر این مطلب مفید تشکر کرده اند:
قدیمی سه شنبه 14 اسفند 1386, 09:06 صبح   #158
sinpin
VIP
 
تاریخ عضویت: مرداد 1383
پست: 2,275
تشکرها: 276
3,448 بار تشکر شده در 733 پست
ارسال پیام از طریق Yahoo به sinpin
انجام عملیات متداول بر رشته ها

حذف تمامی whiteSpace ها :
کد:
 //STRIPS WHITE SPACES FROM BOTH START + FINSIHE 
  string Name = " String Manipulation " ; 
  string NewName = Name.Trim();
حذف whiteSpace ها (یا حروفی خاص) از آخر رشته :
کد:
 //STRIPS CHRS FROM THE END OF THE STRING 
  string Name = " String Manipulation " ; 
  //SET OUT CHRS TO STRIP FROM END 
  char[] MyChar = {' ','n'}; 
  string NewName = Name.TrimEnd(MyChar);
حذف whiteSpace ها (یا حروفی خاص) از ابتدای رشته :
کد:
 //STRIPS CHRS FROM THE START OF THE STRING 
  string Name = " String Manipulation " ; 
  //SET OUT CHRS TO STRIP FROM END 
  char[] MyChar = {' ','S'}; 
  string NewName = Name.TrimStart(MyChar);
جستجوی یک رشته ی در رشته ی دیگر :
کد:
 string MainString = "String Manipulation"; 
  string SearchString = "pul"; 
  int FirstChr = MainString.IndexOf(SearchString);
جایگزین کردن بخشی از یک رشته :
کد:
 string MainString "String Manipulatin"; 
  string CorrectString = MainString.Replace("Manipulatin", "Manipulation");
حذف کردن بخشی از یک رشته :
کد:
 string MainString = "S1111tring Manipulation"; 
  string NewString = MainString.Remove(1,4);
تفکیک یک رشته :
کد:
 string MainString = "String Manipulation"; 
  string [] Split = MainString.Split(new Char [] {' '}); 
  //SHOW RESULT 
  MessageBox.Show(Convert.ToString(Split[0])); 
  MessageBox.Show(Convert.ToString(Split[1]));
منبع : http://www.developerfusion.co.uk/show/4398/
sinpin آفلاین است   پاسخ با نقل قول
6 کاربر از sinpin به خاطر این مطلب مفید تشکر کرده اند:
قدیمی سه شنبه 14 اسفند 1386, 09:31 صبح   #159
danial82
کاربر دائمی
 
آواتار danial82
 
تاریخ عضویت: مرداد 1384
محل زندگی: iran_tehran
پست: 453
تشکرها: 198
124 بار تشکر شده در 44 پست
ارسال پیام از طریق Yahoo به danial82
مقایسه دو رشته بدون توجه به بزرگی و کوچکی حروف
کد:
 if (string.Compare(str1, str2, false) == 0) // Case Insensitive!
                Console.WriteLine("Two strings are similar to each other.");
مقایسه دو رشته با توجه به بزرگی و کوچکی حروف
کد:
 if (string.Compare(str1, str2, true) == 0) // Case Insensitive!
                Console.WriteLine("Two strings are similar to each other.");
برگرداندن یک رشته ار داخل یک رشته
کد:
            string MainString = "String Manipulation";
            //SHOW RESULT 
            MessageBox.Show(str1.Substring(6, 12));
روش دیگر استفاده از تابع Split

کد:
            string[] aryStrings;

            str1 = "Hello,How;Are,You";
            aryStrings = str1.Split(',', ';', '*');
            foreach (string str in aryStrings)
                MessageBox.Show("{0}", str);
danial82 آفلاین است   پاسخ با نقل قول
2 کاربر از danial82 به خاطر این مطلب مفید تشکر کرده اند:
قدیمی چهارشنبه 15 اسفند 1386, 09:32 صبح   #160
sinpin
VIP
 
تاریخ عضویت: مرداد 1383
پست: 2,275
تشکرها: 276
3,448 بار تشکر شده در 733 پست
ارسال پیام از طریق Yahoo به sinpin
Lightbulb تفاوت GZip و Deflate در فشرده کردن

هر دو در استفاده از الگوریتم فشرده سازی دقیقا یکسان هستند و تنها تفاوتی بین آن دو اینستکه :
با استفاده از GZip میتوانید اطلاعات اضافه ای (metadata) را به قسمت header و footer فایل خروجی اضافه نمایید لذا اندکی میتواند حجم خروجی آن از Deflate بیشتر شود.

بعبارت دقیقتر کلاس GZipStream یک لفافه (wrapper) بر روی کلاس DeflateStream است و روش فشردن اطلاعات در هردو کلاس مطابق تعریف RFC 1952 است.

منبع : http://msdn2.microsoft.com/en-us/magazine/cc163727.aspx
sinpin آفلاین است   پاسخ با نقل قول
4 کاربر از sinpin به خاطر این مطلب مفید تشکر کرده اند:
پاسخ

بوک مارک کردن این تاپیک

Tags
.net framework, ترفند, Tips, Tricks, نکته ها


کاربرانی که این تاپیک را مشاهده میکنند: 3 (0 کاربران و 3 مهمان)
 
ابزار های تاپیک
طریقه نمایش

قوانین ایجاد تاپیک در تالار
شما نمی توانید تاپیک جدید ایجاد کنید
شما نمی توانید به تاپیک ها پاسخ دهید
شما نمی توانید ضمیمه ارسال کنید
شما نمی توانید پاسخ هایتان را ویرایش کنید

BB code روشن است
خندانک ها روشن هستند
[IMG] روشن است
HTML خاموش است

پرش



واحد زمان برحسب ساعت لندن +3.5. ساعت هم اکنون 01:19 صبح است.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 1389, Jelsoft Enterprises Ltd.
خدمات میزبانی این سایت تحت پوشش شرکت ایران هاست می باشد.