تاپیک جامع نکات در سی شارپ
تولید اعداد تصادفی توسط کلاس 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;
}
قرار دادن فایل فلش در سی شارپ
برای قراردادن فایل فلش(SWF) در برنامه:
1-بخش toolbox محیط ویژوال استدیو را باز کنید.(همون منوی سمت چپ)
2-روی آن کلیک راست کنید و choose items را انتخاب کنید.
3-حالا یک پنجره باز می شود به اسم choose toolbox items که شما tab سمت راستی یعنی com components را باز می کنید.
4-حالا توی لیست موجوددنبال گزینه shockwave flash object بگردید آنرا تیک بزنید و ok کنید.
5-حالا این کامپوننت توی toolbox تون در سمت چپ اضافه شده است که آنرا drag and drop کرده وتمام
حال فایل فلش را با کد زیر به برنامه اضافه نمایید:
کد:
"axShockwaveFlash1.Movie = Application.StartupPath + @"\flash\main.swf;
این کد را می توانید در رویداد load فرم و یا در رویداد کلیک یک button اضافه کنید.
گرفتن خروجی Excel از داده های کنترل ListView
کد:
void ExportToExcel(ListView lstView)
{
SaveFileDialog DlgSaveExcel = new SaveFileDialog();
DlgSaveExcel.DefaultExt = "csv";
DlgSaveExcel.****** = "csv files (*.csv)|*.csv";
if (DlgSaveExcel.ShowDialog() == DialogResult.OK)
{
Stream myStream;
byte[] info = null;
string ExportExcel = string.Empty;
if ((myStream = DlgSaveExcel.OpenFile()) != null)
{
foreach (ColumnHeader Curr in lstView.Columns)
{
ExportExcel += Curr.Text.Replace(";", "") + ";";
}
ExportExcel += "\n";
foreach (ListViewItem Item in lstView.Items)
{
foreach (ListViewItem.ListViewSubItem SubItem in Item.SubItems)
{
ExportExcel += SubItem.Text.Replace(";", "") + ";";
}
ExportExcel += "\n";
}
info = new UTF8Encoding(true).GetBytes(ExportExcel);
myStream.Write(info, 0, info.Length);
myStream.Close();
}
تبدیل string به int
کد:
int c = Convert.ToInt32(textBox1.Text);
یا
int.Parse(textBox1.Text);
یا
int i;
int.TryParse(textBox1.Text, out i);
چرخاندن یک تصویر با زاویه دلخواه
کد:
private Bitmap rotateImage(Bitmap b, float angle)
{
Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
Graphics g = Graphics.FromImage(returnBitmap);
g.TranslateTransform((float)b.Width / 2, (float)b.Height / 2);
g.RotateTransform(angle);
g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2);
g.DrawImage(b, new Point(0, 0));
return returnBitmap;
}
کارکتر کوچک و بزرگ
با این کد فقط میتونید در تکست باکس کارکتر کوچیک بنویسید:
کد:
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;
}
}
ساخت منوی چند ستونه
کافیست که بر روی فرم دو بار کلیک کرده و کد زیر را در رویداد Load آن بنویسید :
کد:
private void Form1_Load(object sender, EventArgs e)
{
ToolStripDropDown menu = new ToolStripDropDown();
ToolStripItem[] items =
new ToolStripItem[fileToolStripMenuItem.DropDown.Items.Count];
fileToolStripMenuItem.DropDown.Items.CopyTo(items, 0);
foreach (ToolStripItem item in items)
{
if (!(item is ToolStripSeparator)) menu.Items.Add(item);
}
menu.LayoutStyle = ToolStripLayoutStyle.Table;
((TableLayoutSettings)menu.LayoutSettings).ColumnCount = 2;
fileToolStripMenuItem.DropDown = menu;
}
کارکتر کوچک و بزرگ با هم
با این کد میتونید در تکست باکس کارکتر کوچیک و بزرگ بنویسید:
کد:
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;
}
}
نمایش پیغام قبل از بسته شدن فرم
کد:
protected override void OnClosing(CancelEventArgs e)
{
if (MessageBox.Show("آیا برای خروج از برنامه اطمینان دارید؟", "اخطار", MessageBoxButtons.YesNo) != DialogResult.Yes)
e.Cancel = true;
else
{
base.OnClosing(e);
}
}
اجرا کردن یک برنامه بدون نمایش دادن پنجره آن
کد:
System.Diagnostics.ProcessStartInfo process_i = new System.Diagnostics.ProcessStartInfo();
process_i.FileName = "Notepad.Exe";
process_i.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo = process_i; process.Start();
تغییر دادن مکان picturebox در روی فرم بوسیلۀ موس
کد:
namespace Mouse
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Point MouseDownLocation;
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
pictureBox1.Left = e.X + pictureBox1.Left - MouseDownLocation.X;
pictureBox1.Top = e.Y + pictureBox1.Top - MouseDownLocation.Y;
}
}
انتقال آیتمهای یک کالکشن به یک آرایه
کد:
ArrayList list = new ArrayList();
list.Add(new Employee());
list.Add("mohammad");
list.Add(1);
object[] array = new object[list.Count];
list.CopyTo(array, 0);
تبدیل یک رشته به بولین آن :
کد:
string str = "Yes";
bool flag = str.ToLower() == "yes" ? true : false;
قطع کردن اتصال اینترنت دایل آپ از طریق دستورات خط فرمان
این دستور ساده ترین دستوری هست که میتونه مفید باشه
کد:
System.Diagnostics.Process.Start("rasdial", "/disconnect");
خواندن و نوشتن رنگ یک پیکسل به کمک کلاس Bitmap
کد:
using System.Drawing.Imaging;
کد:
Bitmap bmp = new Bitmap(picturebox1.Image);
//read
Color c = bmp.GetPixel(1, 1);
//write
bmp.SetPixel(2, 2, c);
ساده ترین راه برای جلوگیری از Not Respond شدن برنامه در حلقه های طولانی
کد:
Application.DoEvents();
انتقال دکمه روی فرم به درون Notepad ویندوز با API
با این کد و با استفاده از توابع API میتونید Button موجود روی فرم رو به درون Notepad منتقل کنید
عکس ضمیمه شد.
کد:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace api
{
public partial class Form1 : Form
{
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpclassname, string lpwindowname);
[DllImport("user32.dll")]
public static extern IntPtr SetParent(IntPtr hwndChild, IntPtr hwndNewParent);
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
IntPtr f = FindWindow("Notepad", null);
SetParent(button1.Handle, f);
}
تغییر محتوای TextBox توسط CheckBox در سی شارپ
کد:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
textBox1.Text += "1";
}
else
{
textBox1.Text += "0";
}
}
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();
PingReply reply = ping.Send(remoteMachineNameOrIP, timeOut);
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);
}