برای این کار کافیه خاصیت StartPosition فرم تنظیم کنید. کد جناب Iran58 در پست456 زمانی بدرد می خوره که در یک نقطه خواص بخواهید فرم باز بشه
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScree n;
Printable View
سلام دوستان
حتما شما در داخل ویندوز تا حالا با این برخورد کردید که بعضی وقت ها بر روی بعضی دکمه ها کلیک می کنید و آنها Enable نیستن صدا ی Beep میاد .:کف:
حالا من با این کدی که کذاشتم می تونید این کارو برای هر دکمه یا کنترلی روی فرمتون بزارید
اینم از کدش :
System.Media.SystemSounds.Beep.Play();
System.Media.SystemSounds.Asterisk.Play();
System.Media.SystemSounds.Hand.Play();
System.Media.SystemSounds.Exclamation.Play();
این صدا ها خیلی کاربرد دارن و می تونید از اونا مثلا برای وقتی که یه پیغام به نمایش گذاشته میشه استفاده کنید .
یه نوع دیگه از این صدا ها که نوع صداش به خودتون بستگی داره::چشمک:
این صدا رو با استفاده از دستورات API و فرکانس صدا به اجرا میزارید :
[DllImport("kernel32.dll")]
public static extern bool Beep(int freq, int duration);
و بعدش در داخل event مربوط به کنترلتون مثل دیکمه :
Beep(4000, 1000);
اولین پارامتر ورودی برای فرکانس صدا و دومی برای مدت زمان پخش هست .
خوب من اینم بگم :
من از این دستور آخری که API هست وقتی توی VB6 استفاده می کردم صدا از داخل کیس میومد یعنی از بلندگوی مادربرد میومد ولی حالا توی .Net از داخل Speaker میاد :افسرده:.
ولی اینم بگم قدرت VB6 توی دستورات API خیلی بیشتر از C# بود چون توی اون بدون واسطه و .... (CRL) بودش . قبلا حتی برای بازی هامم ازش استفاده می کردم :خجالت::لبخند:.
اگه خوشتون اومد تشکر یادتون نره !!
مینی مایز کردن تمامی پنجره های ویندوزی با استفاده از Invoke
البته نمیدونم قبلا گذاشته شده یا نه. ولی خب منم گذاشتمش شاید به درد کسی خورد.
مدیران عزیز اگر گذاشته شده قبلا امیدوارم
پست رو پاک کنید.
Type typeS = null;
object os = Type.Missing;
typeS = Type.GetTypeFromProgID("Shell.Application");
os = Activator.CreateInstance(typeS);
typeS.InvokeMember
("MinimizeAll", System.Reflection.BindingFlags.InvokeMethod, null, os, null);
سلام
یک روش برای حذف آیتمهایی که در CheckListBox تیک نخوردن
while (checkedListBox1.Items.Count - checkedListBox1.CheckedItems.Count >0)
{
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
if (checkedListBox1.GetItemCheckState(i) == CheckState.Unchecked)
checkedListBox1.Items.RemoveAt(i);
}
}
چک کردن اینکه آیا کلید capslock یا numlock روشن هست یا نه
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true,
CallingConvention=CallingConvention.Winapi)]
public static extern short GetKeyState(int keyCode);
bool isCapsLock = (((ushort) GetKeyState(0x14 /*VK_CAPITAL*/)) & 0xffff) != 0;
bool isNumLock = (((ushort) GetKeyState(0x90 /*VK_NUMLOCK*/)) & 0xffff) != 0;
با سلام
این هم از اولین نکته من :قلب:
امیدوارم که تکراری نباشه :خجالت:
لیست برنامه ها نصب شده در مسیر زیر درون رجیستری قرار میگیره:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Uninstall
خب حالا برای بدست آوردنشون:
private void GetInstalledPrograms()
{
RegistryKey localmachine = Registry.LocalMachine;
RegistryKey uninstall = localmachine.OpenSubKey(@"Software\Microsoft\Windo ws\CurrentVersion\Uninstall");
foreach (string key in uninstall.GetSubKeyNames())
{
RegistryKey activeKey = uninstall.OpenSubKey(key);
string displayName = (string)activeKey.GetValue("DisplayName");
if (!String.IsNullOrEmpty(displayName))
listBox1.Items.Add(displayName);
}
}
موفق باشین :لبخند:
کلا برای اینکه با هر کنترلی نتونید فرم رو ببندید :
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
با کدهای زیر شما میتونید یک رشته و یک پیکچر باکس رو معرفی بکنید و رشته تبدیل به عکس بشه مانند شکل زیر:
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;
}
}
}
}
طرز استفاده :
منبع : stackoverflow.com
private void button1_Click(object sender, EventArgs e)
{
RenderRainbowText(" mojtaba,Dinarvand ", pictureBox1);
}
سلام
امروز برای دوستانی که با Extension های Visual Studio آشنا نیستند شروع به نوشتن یه مقاله کوچیک کردم . که پیشنهاد میکنم اگه ازشون استفاده نمیکنید حتما یه نگاهی بندازید :
https://barnamenevis.org/showthread.php?t=251272
موفق باشید .
سلام؛ نمی دونم قبلا کسی این مطلب رو پست کرده یا نه (من ندیدم)
برای Scroll کردن به یه سطر که از طریق کد انتخاب شده می تونید از Property زیر استفاده کنید (البته 3 تا پروپرتی تقریبا هم نام هم برای Scroll به ستون ها هم وجود داره)
dataGridView1.FirstDisplayedScrollingRowIndex
با قرار دادن Index سطری که انتحاب شده در این Property به صورت اتوماتیک سطر انتخاب شده اولین سطر نمایش داده شده در DataGrid خواهد بود:خجالت:
تبدیل یک عکس به معادل GrayScale (تبدیل عکس رنگی به سیاه سفید) آن بصورت خیلی ساده و بهینه :
public 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;
}
با این الگوریتم RGB هر رنگ پیکسل پیدا شده و مجموع آنها تقسیم بر 3 ، RGB های تصویر جدید میشوند ./
استفاده از برخی متودهای کاربردی فضای نام Microsoft.VisualBasic :
(راهنمای افزودن فضای نام به رفرنس های پروژه ، در عکسهای ضمیمه)
مثال : بررسی عدد بودن یک رشته :
if (Microsoft.VisualBasic.Information.IsNumeric("1234 abc"))
MessageBox.Show("YES");
else
MessageBox.Show("NO");
تولید اعداد تصادفی "تقریبا یکتا توسط کلاس 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;
}
سلام دوستان:
آموزش رسم نمودار در سی شارپ به وسیله MSCHART:
این فایل word جمع آوری آموزشهایی هست که توی تاپیک زیر داده بودم، گفتم خالی از لطف نیست اینجا هم باشه،
https://barnamenevis.org/showthread.p...%D9%87-MSCHART
امیدوارم دوستان بتونن استفاده کنن:
تو کرنل از PsSetCreateProcessNotifyRoutine استفاده می کنیم و پروسس ها رو مانیتور می کردیم
این رو لان دیدم خوشم امد
http://msforums.ph/forums/t/50817.aspx
باسلام:
در لینک زیر آموزش ساخت وب سرویس ها و نحوه بکار گیری در برنامه های تحت ویندوز رو براتون گزاشتم.
(میتونید ازش ایده بگیرید)
https://barnamenevis.org/showthread.p...وز&highlight=
رسم یک Rectangle با ماوس راحته اما یک مشکلی بعضی مواقع پیش می یاد(حد اقل برای من) که وقتی می خوایم یک مستطیل رو به طرف بالا رسم کنیم رسم نمیشه و حالا..
این یه خلاصه.
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));
}
}
}
اینم نمونه کد اصلی که من دیدم
http://stackoverflow.com/questions/4...usedown-move-c
با این کار کنترل تب خودکار پس از کامل شدن مقادیر پیش فرض تکست باکس یا مسک تکست باکس به کنترل بعدی میره
private void MaskTextBox_TextChanged(object sender, EventArgs e)
{
if (MaskTextBox.MaskCompleted) TextBox1.Focus();
}
//************************************************
private void TextBox1_TextChanged(object sender, EventArgs e)
{
if (TextBox1.TextLength == 2) TextBox2.Focus();
}
اگه Microsoft.VisualBasic رو به رفرنسهاتون Add کنید
برای تغییر نام فایل
Microsoft.VisualBasic.FileIO.FileSystem.RenameFile (file, newname);
و برای تغییر نام فولدر
Microsoft.VisualBasic.FileIO.FileSystem.RenameDire ctory(directry, newname);
با اجازه دوست عزیز اینطور تصحیح بکنم :
private void MaskTextBox_TextChanged ( object sender, EventArgs e )
{
if ( MaskTextBox.MaskCompleted ) SendKeys.Send("{TAB}");
}
//************************************************
private void TextBox1_TextChanged ( object sender, EventArgs e )
{
if ( TextBox1.TextLength == 2 ) SendKeys.Send("{TAB}");
}
عملگر ؟؟ برای مشص کردن مقدار پیشفرض یک متغیر در صورت null بودن
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
MSDN
با سلام خدمت تمام دوستان برنامه نویس
نحوه باز کردن یک برنامه و مطلع شدن از باز یا بسته بودن آن توسط 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 = "آدرس برنامه";
نمونه برنامه
ضمیمه 74011
آرزو میکنم که همیشه موفق باشین
عنوان دقیقترِ پست: استفاده از کی-ورد await بجای جنگولک بازیهایِ من-درآوردیِ معمول...!
فرض کنید بعنوان یک مثال خیلی عمومی میخوایم مقدار زیادی اطلاعات از دیتابیس بگیریم (یا بطور کلی کاری بکنیم که کمی وقتگیر هست و Thread جاری رو چند لحظه ای مشغول میکنه) و نمیخوایم هم که این اتفاق بیوفته چون مثلا فرمی که الان کاربر داره باهاش کارمیکنه قفل میشه و یجورایی احساس خوشآیندی به کاربر نمیده!
برای حل این مشکل اصولا هرکس میتونه برای خودش راه حلی داشته باشه و همه راه حلها هم درست کار کنن. ولی استفاده از کی-ورد await میتونه از خیلی از اینها راحتتر باشه:
(تو این کد فرض کنید متد GetData که یه DataTable برمیگردونه، مدت زمان چند ثانیه وقت میگیره و مشکلمون اون هست و نمیخوایم مثلا فرممون اصطلاحا قفل بشه).
// Create new task
Task<DataTable> dataTask = new Task<DataTable>(GetData);
//this will actually "pause" the code execution until the task completes. It doesn't lock the thread, but rather waits for the result, similar to an async callback
DataTable table = await dataTask;
listBoxControl.DataContext = table;
که توضیحات داخل کد گویا هست به نظرم.
حتی میشه استفاده رو بهتر کرد (یعنی مثلا قبل از شروع به کار یه صفحه ای چیزی به کاربر نشون داده بشه، و بعد از اتمام کار هم اون صفحه بسته بشه):
//create and run a new task
Task<DataTable> dataTask = new Task<DataTable>(GetData);
//run some other code immediately after this task is started and running
ShowLoaderControl();
StartStoryboard();
//this will actually "pause" the code execution until the task completes. It doesn't lock the thread, but rather waits for the result, similar to an async callback
DataTable table = await dataTask;
//Now we can perform operations on the Task result, as if we're executing code after the async operation completed
listBoxControl.DataContext = table;
StopStoryboard();
HideLoaderControl();
منبع کد: http://stackoverflow.com/questions/4...-await-feature
پیدا کردن پورت COM دستگاهی که با چیپ ftdi به کامپیوتر وصل شده
UInt32 count = 0;
FTDI.FT_STATUS status = ftdi.GetNumberOfDevices(ref count);
if (status != FTDI.FT_STATUS.FT_OK)
{
log.Warn("Unable to access FTDI");
return ports;
}
FTDI.FT_DEVICE_INFO_NODE[] list = new FTDI.FT_DEVICE_INFO_NODE[count];
status = ftdi.GetDeviceList(list);
if (status != FTDI.FT_STATUS.FT_OK)
{
log.Warn("Unable to access FTDI");
return ports;
}
foreach (FTDI.FT_DEVICE_INFO_NODE node in list)
{
if ((status = ftdi.OpenByLocation(node.LocId)) == FTDI.FT_STATUS.FT_OK)
{
try
{
string comport;
ftdi.GetCOMPort(out comport);
ports.Add(new Port(comport, node.Description, node.SerialNumber));
}
finally
{
ftdi.Close();
}
}
}
منبع
توابع Params در # C
یک تابع می تواند به تعداد نامحدود پارامتر دریافت کند برای اینکار از دستور Params در تعریف پارامترها استفاده می شود به مثال زیر توجه کنید :
public static long Sum(params int[] numbers)
{
long Result = 0;
foreach (int number in numbers)
{
Result += number;
}
return Result;
}
آموزش نحوه Hidden (مخفی) کردن فایل در سی شارپ:
مبحث فایلها یک از جذابترین موضوعات در سی شارپ است.در این پست قصد دارم نحوه مخفی کردن و نمایش فایل مخفی را به زبان سی شارپ توضیح دهم.البته کد بسیار ساده ای دارد.
خوب, چون از فایل میخواهیم استفاده کنیم ابتدا فضای نام System.IO را به برنامه اضافه میکنیم.یک شی از کلاس FileInfo درست کرده و به آن مسیر فایلی را که میخواهیم مخفی کنیم به آن میدهیم
مبحث فایلها یک از جذابترین موضوعات در سی شارپ است.در این پست قصد دارم نحوه مخفی کردن و نمایش فایل مخفی را به زبان سی شارپ توضیح دهم.البته کد بسیار ساده ای دارد.
خوب, چون از فایل میخواهیم استفاده کنیم ابتدا فضای نام System.IO را به برنامه اضافه میکنیم.یک شی از کلاس FileInfo درست کرده و به آن مسیر فایلی را که میخواهیم مخفی کنیم به آن میدهیم
مبحث فایلها یک از جذابترین موضوعات در سی شارپ است.در این پست قصد دارم نحوه مخفی کردن و نمایش فایل مخفی را به زبان سی شارپ توضیح دهم.البته کد بسیار ساده ای دارد.
خوب, چون از فایل میخواهیم استفاده کنیم ابتدا فضای نام System.IO را به برنامه اضافه میکنیم.یک شی از کلاس FileInfo درست کرده و به آن مسیر فایلی را که میخواهیم مخفی کنیم به آن میدهیم مانند کد زیر:
FileInfo file;
file = new FileInfo("مسیر فایل");
برای مخفی کردن فایل از کد زیر استفاده میکنیم:
file.Attributes = FileAttributes.Hidden;
برای آنکه فایل مخفی شده ظاهر شود و از حالت Hidden بیرون بیاید از کد زیر استفاده میکنیم:
file.Attributes = ~FileAttributes.Hidden;
ایجاد رمزهای تصادفی توسط فضای نام System.Security.Cryptography
public static string CreateRandomEncryptedPassword(int PasswordLen)
{
String allowedChars =
"abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXY Z0123456789";
Byte[] randomBytes = new Byte[PasswordLen];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetBytes(randomBytes);
char[] chars = new char[PasswordLen];
int allowedCharCount = allowedChars.Length;
for (int i = 0; i < PasswordLen; i++)
{
chars[i] = allowedChars[(int)randomBytes[i] % allowedCharCount];
}
return new string(chars);
}
برای تبدیل یک رشته به کلاس مربوطه از تابع GetType استفاده میکنیم
Type.GetType("Customer");
و اگر داخل کلاس اصلی کلاس دیگه باشد که به آن نیاز داشته باشیم از + استفاده میکنین
Type.GetType("Customer+Category");
سلام به همگی.
منم یه تیکه کد از یکی از پروژه های خودم رو گذاشتم (البته به صورت ساده تر) که برای زیبا شدن فرم به رابط کاربر کمکتون خواهد کرد.
کار کد : در صورتی که تعداد کارکتر های وارد شده ی textBox1 کمتر مساوی 3 عدد بود رنگ تکست به صورت سبز و ProgressBar سه پله افزایش پیدا کنه
همونطر که از کد پیداست نیاز به یک textBox1 و یک progressBar1 داریم :
string strt;
strt = textBox1.Text;
progressBar1.Value = Int32.Parse(strt.Length.ToString());
if (progressBar1.Value <= 3)
{
textBox1.BackColor = Color.Salmon;
}
else if (progressBar1.Value >= 3 && progressBar1 .Value <=6)
{
textBox1.BackColor = Color.Gold;
}
else if (progressBar1.Value >= 6)
{
textBox1.BackColor = Color.PaleGreen;
}
کسانیکه کمی تجربه کاری در محیط Visual Studio دارند حتما با پنجره Immediate Window آشنایی دارند. از طریق این پنجره می توان هنگام دیباگ کد نوشت مثلا مقدار متغییری رو تغییر داد و .... اما کار با این پنجره فقط به زمان دیباگ کردن محدود نمی شود و شما می تونید هنگام کد نویسی مثلا برای چک کردن صحت عملکرد یک متد از آن استفاده کنید آقای مجتبی بنایی در سایت خودشون در این پست به این مطلب اشاره کردن
نقل از سایت ایشون:
یکی از امکانات جالب و البته قدیمی ویژوال استودیو در دیباگ کردن یا اشکالزدایی برنامه ها، پنجره فوری یا Immediate Window است که بازدن کلید Ctrl+Alt+I فعال می شود (یا از منوی دیباگ - زیر منوی ویندو). از این پنجره می توان در موارد زیر استفاده کرد :
اجرای محاسبات و دستورات و مشاهده فوری نتایج
فرض کنید می خواهید یک عبارت یا دستور را بنویسید و بدون اجرای برنامه نتیجه آنرا ببینید. مثلاً می خواهید یک فرمول ریاضی را بنویسید و صحت آنرا بررسی کنید و یا مثلاً ببینید تابع Random.Next(2,9) اعداد دوطرف بازه را هم تولید می کند یا نه ؟ کافیست در پنجره فوری متغیری از نوع Random تعریف کنید و تابع را روی آن متغیر صدا بزنید :(رنگ آبی مقادیریست که شما وارد می کنید)
Random R = new Random();
{System.Random}
R.Next(2,4);
2
R.Next(2,4);
2
اجرا و تست توابع
تابعی را نوشته اید و می خواهید آنرا سریعاً تست کنید. نمی خواهید که برنامه را از اول کامپایل کنید و درون برنامه اصلی آنرا فراخوانی و امتحان کنید . در این حالت هم بهترین راه تست تابع، استفاده از پنجره فوری است . فرض کنید تابعی به نام Test با یک ورودی رشته ای در کلاس Form1 تعریف کرده اید . می خواهید آنرا
صدا بزنید . کافیست در پنجره فوری این عبارات را تایپ کنید : (علامت سوال برای فراخوانی تابع و چاپ نتیجه)
Form1 F = new Form1();
{GIS1.Form1, Text: Form1}
base {System.Windows.Forms.Form}: {GIS1.Form1, Text: Form1}
components: null
?F.Test("ali");
"ALI"
تغییر مقادیر متغیرها در هنگام اشکالزدایی برنامه
خیلی از اوقات هنگام دیباگ کردن یک برنامه می خواهید مقدار یک متغیر را تغییر دهید مثلاً شمارنده حلقه را تغییر دهید تا به فلان مقدار برسد اینجا هم کافیست در پنجره فوری مقدار جدید را به متغیر نسبت دهید. در این حالت نیازی به تعریف متغیرنیست و تنها متغیر را برابر مقدار جدید می گذارید .
پست های زیادی این مشکل را مطرح کردند.آخرشم تو این سایت به جواب نرسیدم.
لازم دیدم نتیجه رو اینجا برای دوستانم بزارم.
concurrency violation the updatecommand affected 0 of the expected 1 records
به قسمت TableAdapter در Dataset بروید.
دستورات مربوط به Update , Delete را اصلاح کنید. به این صورت که در قسمت Where فقط شرط مربوط به کلید را باقی گذاشته و بقیه شروط را حذف کنید.
نقل قول:
Syed Sami Naushahi
1. Open the DataSet in the designer.
2. Click on the adapter portion of the relevant table. For example in my case I clicked on DoctorTableAdopter.
3. The properties window will show the UpdateCommand and DeleteCommand for this adopter.
4. Expand Update and Delete commands by clicking the + sign on their left. This would show the CommandText property for these commands.
5. Click on the value entered against CommandText. It will show you the SQL statement for that command. Edit its WHERE clause and remove all other columns except the columns included in your primary key. For example in my case a rather lengthy WHERE clause (which was trying to compare more than a dozen columns) was modified to WHERE (Doctor_ID = @Original_Doctor_ID).
منبع:MSDN.com
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();
}
}
بررسی اتصال به پایگاه داده و اگر اتصال برقرار نشده باشد نمایش ارورهای ممکن جهت رفع مشکل اتصال.
Process.Start("control.exe", "Mouse");
باز کردن کنترل پنل و باز کردن صفخه موس پروپرتی
دسترسی به بعضی قسمت ها ویندوز با shell32
using Shell32;
اضافه کردن به رفرنس از طریق c:\win....\system32\shell32
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");
}
private void button1_Click(object sender, EventArgs e)
{
objshell.ControlPanelItem(listBox2.SelectedItem.To String());
}
To get started, open an existing C# Windows form (or create a new one).
Open the Visual Studio Toolbox.
Drag a NotifyIcon control onto the form. The control will named notifyIcon1 by default and placed below the form because it has no visual representation on the form itself.
Set the NotifyIcon control's Text property to the name you want to appear when the user pauses the mouse over the application's icon. For example, this value could be "KillerApp 1.0".
Set the control's Icon property to the icon that you want to appear in the System Tray.
private void Form1_Resize(object sender, System.EventArgs e)
{
if (FormWindowState.Minimized == WindowState)
Hide();
}
Add an event handler for the NotifyIcon.DoubleClick event and code it as follows so that the application will be restored when the icon is double-clicked.
private void notifyIcon1_DoubleClick(object sender,
System.EventArgs e)
{
Show();
WindowState = FormWindowState.Normal;
}
At this point, your application will fuction perfectly in terms of an icon appearing in the System Tray when the application is run, the application not appearing on the task bar when minimized and the application restoring itself when the Tray icon is double-clicked.
From the Visual Studio Toolbox, drag a ContextMenu control onto the form.
Right-click the ContextMenu control and select the Edit Menu.option.
Type in the options that you want to appear in your context menu. For example, you can add options such as Restore and Close Application.
As with any menu, double-click the menu item to create and code each item's handler. As an example, you could copy the code from the form's DoubleClick handler into the context menu's Restore handler and for the Close Application menu item; simply call the form's Close method.
Finally, set the NotifyIcon control's ContextMenu property to the new context menu you just created by selecting the menu from the drop-down list.
Refrence=www.codeguru.com
کاربرد: ذخیره کردن دستورات Select , Insert , Update , Delete
ابتدا باید در Management studio پایگاه داده مربوطه که برای آن جدول ساخته بودیم را انتخاب کنیم و
سپس در قسمت Programmability وارد پوشه شده و کلیک راست می کنیم و روی New Stored Procedure کلیک می کنیم
در صفحه باز شده همه کدها را پاک کرده و Stored Procedure خود را می نویسیم.
برای مثال برای ذخیره سه مقدار در جدول که در تکست باکس برنامه وارد شده ، استور پروسیژر زیر را می نویسیم:
CREATE procedure InsertGroup
@Sal integer,@Code integer,@Name char(20)
AS
INSERT INTO Acc_Group
(Sal_Mali,Code_G,Name_G)
VALUES (@Sal,@Code,@Name)
GO
در رویداد باتن ذخیره در ویژوال استدیو سی شارپ کد زیر را می نویسیم و با اجرای برنامه سی شارپ مقدار های وارد شده در تکست باکس ها در جدول پایگاه داده ما ذخیره می شوند و توسط دیتا گرید ویو می توانیم آنها را مشاهده کنیم.
private void btn_save_Click(object sender, EventArgs e)
{
SqlCommand cmd1 = new SqlCommand();
string text1 = "Data Source=studio;InitialCatalog=AccountDb;Integrated Security=True";
SqlConnection c1 = new SqlConnection(text1);
cmd1.Parameters.Add(new SqlParameter("@Code", txtb_Code_G.Text));
cmd1.Parameters.Add(new SqlParameter("@Sal", txtb_Sal_Mali.Text));
cmd1.Parameters.Add(new SqlParameter("@Name", txtb_Name_G .Text));
cmd1.CommandText = "InsertGroup";
cmd1.CommandType = CommandType.StoredProcedure;
cmd1.Connection = c1;
c1.Open();
cmd1.ExecuteNonQuery();
c1.Close();
}
سلام دوستان برنامه نویس
ابتدا Namespace زیر رو به برنامه اضافه کنید
using System.Runtime.InteropServices;
سپس کد زیر رو به ابتدای برنامه اضافه کنید
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd,int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
حالا کد زیر را در رویداد MouseDown هر شی که خواستید اضافه کنید
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(this.Handle, 0xa1, 0x2, 0);
}
موفق باشین
با سلام . امروز داشتم مقاله ای رو در مورد توابع هش (Hash Functions) می خوندم ؛ کدی رو دیدم به زبان ++C
بود ، دیدم بد نیست تو #C پیادش کنیم و ازش استفاده کنیم !
long jenkins_one_at_a_time_hash(string key)
{
long hash = 0, i = 0;
for (hash = i = 0; i < key.Length; ++i)
{
hash += key[(int)i];
hash += (hash << 10);
hash ^= (hash >> 6);
}
hash += (hash << 3);
hash ^= (hash >> 11);
hash += (hash << 15);
return Math.Abs(hash);
}
منبع : ویکی پدیا
نقل قول:
به هر رویه خوش تعریف[۱] یا تابع ریاضی که حجم زیادی از داده (احتمالاً حجم نامشخصی از داده) را به یک عدد طبیعی تبدیل کند یک تابع هش[۲](به انگلیسی: Hash function) یا تابع درهمسازی میگویند.
ترجیحا از کلاسی که نوشتم استفاده کنید :)
توضیحات کاملی درش داده شده
متد زیر برای فرم لود هست
public void Add_To_Load()
{
Stream fontStream = this.GetType().Assembly.GetManifestResourceStream( myFontPath);
byte[] fontdata = new byte[fontStream.Length];
fontStream.Read(fontdata, 0, (int)fontStream.Length);
fontStream.Close();
unsafe
{
fixed (byte* pFontData = fontdata)
{
pfc.AddMemoryFont((System.IntPtr)pFontData, fontdata.Length);
}
}
}
متود پایین برای رویداد Paint هست
public void Add_To_Paint(PaintEventArgs e)
{
e.Graphics.PageUnit = GraphicsUnit.Point;
System.Drawing.Font fn;
foreach (FontFamily ff in pfc.Families)
{
if (ff.IsStyleAvailable(myFontStyle))
{
foreach (var item in myControlList)
{
fn = new Font(ff, myFontSize, myFontStyle);
item.Font = fn;
}
}
}
}
کیبورد مجازی ویندوز
osk.exe >> run
کد C#
using System.Diagnostics;
System.Diagnostics.Process.Start(@"c:\WINDOWS\syst em32\osk.exe");
سلام به همگی
می شه بجای نوشتن
X=Y*(2^3)
معادلش
X=Y<<3;
بجای
if(_price == null)
return 0;
return _price;
معادلش
string result = (_price ?? 0)
بجای
For(int i=0 ; i<3 ; i++)
X=Y/2
معادلش
X = Y >> 3
این یکی خیلی پر کاربرده بجای
if ((x2 - x1) < 0) S1 = -1;
else S1 = 1;
معادلش
S1=(x2-x1)<0?-1:1;
لود کردن محتویات سایت در یک ریچ باکس
using System.IO;
using System.Net;
//کد
try
{
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create(txtURL.Text);
request.Timeout = 6000;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader responseReader = new StreamReader(responseStream);
rtbWebPage.Text = responseReader.ReadToEnd();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
داخل txtURL هم آدرس سایت رو بدید تکست باکس
محتویات رو داخل rtbWebPage تحویل بگیرید . ریچ باکس
با استفاده از این api میتونید هر پنجره ای رو که خواستید قفل کنید.
[DllImport("user32.dll")]
private static extern int EnableWindow(int hwnd, int fEnable);
int i = this.Handle.ToInt32();
int u= EnableWindow(i, 1);
تو این مثال handel پنجره فعلی رو میگیره و قفل میکنه که میتو نید با این تابع handel سایر پنجره ها رو بدست بیارید و قفل کنید.
[DllImport("user32.dll")]
private static extern int FindWindow(string lpClassName, string lpWindowName);
int i = FindWindow(null, "Windows Task Manager");
مثلا الان هندل task manager رو گرفتیم و گذاشتیم تویه I که میتونیم از I در تابع قبلی استفاده کنیم و Task Manager رو قفل کنیم !!!
آموزش وراثت در سی شارپ
استفاده از چهار کلاس ( دو کلاس پایه و دو کلاس مشتق شده)
آموزش چند ریختی
آموزش نحوه استفاده از دیتاگرید ویو
دو مثال برای درک بیشتر مفهوم وراثت ( محاسبه محیط مربع و مستطیل ، محاسبه حقوق استاد حق التدریسی و استاد هیأت علمی )
http://s4.picofile.com/file/77442760...Part2.rar.html
:تشویق:
با این کد شما می تونید داخل مکانی (آدرس کرسر تکست باکس ) که با موس در تکست باکس انتخاب کردید تایپ کنید
int add = textBox7.SelectionStart;
textBox7.Text =textBox7.Text .Insert ( textBox7.SelectionStart , "1");
// = textBox7.SelectionStart + 1;
textBox7.SelectionStart = add+1 ;
و با این کد اخرین کارکتر وارد شده رو حذف کنید
int add = textBox7.SelectionStart-1;
textBox7.Text = textBox7.Text.Remove (textBox7.SelectionStart-1,1);
textBox7.SelectionStart = add;