0

آموزش های مرتبط با # c

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

پاسخ به:آموزش های مرتبط با # c

ایجاد panel scroll برای نمایش عکس های یک پوشه
ساخت یک پنل با قابلیت اسکرول جهت نمایش تصاویر یک پوشه ...
یک پنل به فرم اضافه کرده و خاصیت AutoScroll آن را true کنید !
و ایجاد فضای نام IO ...
 
و حالا :
 
کد PHP:
 private void LoadImageScroller(Panel p)
    { 
        label1.Text = "یک پوشه عکس انتخاب کنید .....";
     //متغیر های مورد نیاز
        int position = 0;
        int count = 0;   
        string[] validExtensions = new string[] { ".jpg", ".bmp", ".gif", ".png" };
     //تعیین پوشه حاوی عکس  
        DirectoryInfo info = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures));
     
//ایجاد حلقه جهت نمایش همه عکسها        
        foreach (FileInfo f in info.GetFiles())
        {            
            for (int i = 0; i < validExtensions.Length; i++)
            {
//تایید پسوند فایل (عکس) و ایجاد یک pictureBox جدید برای هر عکس                
                if (f.Extension.ToString().ToLower() == validExtensions[i].ToLower())
                {                    
                    PictureBox pb = new PictureBox();                         
                    pb.Name = "ImagePB" + count;                        
                    pb.Cursor = Cursors.Hand;
//تعیین پنل بعنوان جایگاه نمایش عکس ها و اندازه عکسها و فاصله از لبه پنل و دیگر عکسها                         
                    pb.Parent = p;
                    pb.Size = new Size(130, 98);                         
                    pb.SizeMode = PictureBoxSizeMode.StretchImage;                        
                    pb.Location = new Point(position + 10, 20);
//ایجاد تصویر برای هر pictureBox                        
                    pb.Image = Image.FromFile(f.FullName);                    
                    pb.Image.Tag = f.FullName;
//تعریف رویداد های مورد نیاز ... مختصات نمایش عکس و شمارنده تعداد عکسها                         
                    pb.MouseHover += new EventHandler(pb_MouseHover);
                    pb.MouseLeave += new EventHandler(pb_MouseLeave);
                    pb.Click += new EventHandler(pb_Click);                         
                    position += 135;                         
                    count += 1;
                }
            }
        }
//نمایش اطلاعات عکس در لیبل
        label1.Text = string.Format("{0} image(s) available in directory {1}", count, Environment.GetFolderPath(Environment.SpecialFolder.MyPictures));
    }
//تغییر کادر عکسها با آمدن و رفتن ماوس و نمایش نام عکس در مسیج باکس با کلیک روی عکس
        void pb_MouseHover(object sender, EventArgs e)
    {        
        ((PictureBox)sender).BorderStyle = BorderStyle.Fixed3D;
    }
        void pb_MouseLeave(object sender, EventArgs e)
    {        
        ((PictureBox)sender).BorderStyle = BorderStyle.None;
    }
        void pb_Click(object sender, EventArgs e)
    {        
        MessageBox.Show(string.Format("Selected Image: {0}", ((PictureBox)sender).Image.Tag.ToString()));
       
    }  
و در رویداد Load_Form :
 
کد PHP:
LoadImageScroller(panel1);  
 
 
امیدوارم یه چیزایی ازش یاد بگیرین ...
(اگه موفق شدم تغییراتی توش بدم در ادامه میزارم)

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

باز کردن هر فرم فقط یه بار
سلام
برای مثال میخوایم با کلیک رو یه دکمه ای یه فرم دیگه رو باز کنیم ولی میخوایم دوباره که رو دکمه کلیک کردیم اگه فرم باز بود بازم باز نشه و فقط نشونش بده
در رویداد کلیک دکمه مینویسیم :
کد PHP:
            // Application.OpenForms["نام فرم"] == null
            // yani hich forme bazi nadashte bashe
            if (Application.OpenForms["Form2"] == null)
            {
                // ino ke hame midunan :D
                Form2 Ashiyane = new Form2();
                // neshun bede :D
                Ashiyane.Show();
            }
            else
                // age forme baz dare rushun focus kon :D
                // ma ham ke age forme baz dashte bashim faqat yedunas
                Application.OpenForms["Form2"].Focus();
                // The End :D  

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

Lightbulb رویداد Mouse_wheel جهت بزرگ و کوچک نمایی تصویر
ابتدا میبایست این رویداد را ایجاد کرد :
کد PHP:
InitializeComponent(); 
            pictureBox1.MouseEnter += new EventHandler(pictureBox1_MouseEnter); 
            pictureBox1.MouseWheel += new MouseEventHandler(pictureBox1_MouseWheel);  
سپس بصورت دستی (باید تایپ کنید)
 
کد PHP:
void pictureBox1_MouseWheel(object sender, MouseEventArgs e) 
        { 
            pictureBox1.Height += e.Delta / 60; 
            pictureBox1.Width += e.Delta / 60; 
            pictureBox1.Top -= e.Delta / 120; 
            pictureBox1.Left -= e.Delta / 120; 
        }  
تا اینجا هیچ اتفاقی نمیوفته مگر :
 
کد PHP:
void pictureBox1_MouseEnter(object sender, EventArgs e) 
        { 
            pictureBox1.Focus(); 
        }  
رو اعمال کنیم ... حالا وقتی موس روی picBox قرار بگیره میتونید با توپی اون تصویر رو بزرگ و کوچیک کنید !
(با تشکر از آقا مازیار)

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

Arrow اضافه کردن button به DataGridView
در این آموزش شما ابتدا باید یک پروژۀ ویندوزی ایجاد کنید و بعد از اون از toolbox یک کنترل button و یک DataGridView روی فرمتون قرار بدید و بعدش در رویداد کلیک کنترل button کد زیرو تایپ کنید
 
کد:
        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.ColumnCount = 3;
            dataGridView1.Columns[0].Name = "Product ID";
            dataGridView1.Columns[1].Name = "Product Name";
            dataGridView1.Columns[2].Name = "Product Price";
 
            string[] row = new string[] { "1", "Product 1", "1000" };
            dataGridView1.Rows.Add(row);
            row = new string[] { "2", "Product 2", "2000" };
            dataGridView1.Rows.Add(row);
            row = new string[] { "3", "Product 3", "3000" };
            dataGridView1.Rows.Add(row);
            row = new string[] { "4", "Product 4", "4000" };
            dataGridView1.Rows.Add(row);
 
            DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
            dataGridView1.Columns.Add(btn);
            btn.HeaderText = "Click Data";
            btn.Text = "Click Here";
            btn.Name = "btn";
            btn.UseColumnTextForButtonValue = true;
        }
 
 
خب حالا اندازه کنترل دیتاگرید ویتونو جوری تنظیم کنید که بتونید زمان اجرا تغییراتونو ببینید و در رویداد CellClick کنترلتون کد زیرو بنویسید 
 
کد:
     private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 3)
            {
                MessageBox.Show((e.RowIndex + 1) + "  Row  " + (e.ColumnIndex + 1) + "  Column button clicked ");
            }
        }
 
 
بعد از کدنویسی یکبار کلید F6 رو بزنید تا پروژتون build بشه و در آخر برنامه رو اجرا کنید 
خروجی به شکل زیر خواهد شد و شما یک دکمه در هر سطر به گرید ویوتون اضافه کردید
 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

Thumbs up نمایش تصاویر موجود در بانک بصورت اسلاید شو
سلام به همه ...
بعد از ایجاد کانکشن و تعریف :
 
کد PHP:
 private int index = 0; 
        private List<PicData> picList;  
در رویداد Load_Form :
 
کد PHP:
 picList = new List<PicData>(); 
            string cmdString = "SELECT Pic FROM Pic"; 
            con.Open(); 
            com = new OleDbCommand(cmdString, con); 
            var reader = com.ExecuteReader(); 
            while (reader.Read()) 
            { 
                byte[] bytes = (byte[])reader["Pic"]; 
                var ms = new System.IO.MemoryStream(bytes); 
                Image pic = Image.FromStream(ms); 
                var picData = new PicData(pic); 
                picList.Add(picData); 
                pictureBox1.Image = picList[index].Pic; 
            } 
            reader.Close(); 
            con.Close(); 
            timer1.Interval = 1700; 
            timer1.Enabled = true; 
            timer1.Start();  
اینم دستورات مربوط به Timer :
 
کد PHP:
 pictureBox1.Image = picList[index].Pic; 
            index++; 
            if (index >= picList.Count) 
                index = 0;  
طبیعتا برای stop و play اسلاید شو فقط کافیه تایمر رو ...
 
یا علی !

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

Arrow اضافه کردن CheckBox به DataGridView
ابتدا باید یک پروژۀ ویندوزی ایجاد کنید و بعد از اون از toolbox یک کنترل button و یک DataGridView روی فرمتون قرار بدید و بعدش در رویداد کلیک کنترل button کد زیرو تایپ کنید
 
کد:
   private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.ColumnCount = 3;
            dataGridView1.Columns[0].Name = "ردیف";
            dataGridView1.Columns[1].Name = "نام محصول";
            dataGridView1.Columns[2].Name = "قیمت محصول";
 
            string[] row = new string[] { "1", "سیب", "1000" };
            dataGridView1.Rows.Add(row);
            row = new string[] { "2", "سیب زمینی", "2000" };
            dataGridView1.Rows.Add(row);
            row = new string[] { "3", "گوجه فرنگی", "3000" };
            dataGridView1.Rows.Add(row);
            row = new string[] { "4", "خیـار", "4000" };
            dataGridView1.Rows.Add(row);
 
DataGridViewCheckBoxColumn chk = new();
DataGridViewCheckBoxColumn();
            dataGridView1.Columns.Add(chk);
            chk.HeaderText = "بررسی";
            chk.Name = "chk";
            dataGridView1.Rows[3].Cells[3].Value = true;
        }
 
 
خب دقت کنید ما در این خط 
 
کد:
dataGridView1.Rows[3].Cells[3].Value = true;
 
 
یک گزینه رو تیک دار کردیم به صورت پیش فرض
 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

Smile فرم لاگین با سطح دسترسی - معماری سه لایه
آموزش طراحی فرم لاگین با سطح دسترسی با تکنولوژی ADO.net 
منبع (فیلم آموزشی از لرن فایلز)
 
طراحی جدول (User)
درون بانک (اینجا sql) به فیلدهای زیر نیاز است : (در گزینه های از نوع bit مقدار - true و یا false ذخیره میشود)
 
.
.
.
 
در ادامه اضافه کردن یک کلاس جدید به پروژه (اینجا DataAccess)
در واقع کلاس DataAccess لایه اول در این پروژه است ...
 
* ابتدا ایجاد دستورات sql و ایجاد dataAdapter :
 
کد PHP:
SqlConnection con; 
        SqlCommand com; 
        SqlDataAdapter da; 
 
        public DataAccess() 
        { 
            con = new SqlConnection(); 
            com = new SqlCommand(); 
            da = new SqlDataAdapter(); 
            com.Connection = con; 
            da.SelectCommand = com; 
        }  
* حال ایجاد متد اتصال و قطع آن (اینجا Connect و Disconnect)
 
کد PHP:
 public void Connect() 
        { 
            if (con.State != ConnectionState.Open) 
            { 
                con.ConnectionString = @"Data Source=.;Initial Catalog=Test;Integrated Security=True"; 
                con.Open(); 
            } 
        } 
 
        public void Disconnect() 
        { 
            con.Close(); 
        }  
ایجاد متد دستورات (query) و DataTable :
 
کد PHP:
public void Execute(string SQL) 
        { 
            com.CommandText = SQL; 
            com.ExecuteNonQuery(); 
        } 
 
        public DataTable SELECT(string SQL) 
        { 
            DataTable dt = new DataTable(); 
            com.CommandText = SQL; 
            da.Fill(dt); 
            return dt; 
        }  
ایجاد کلاس (در اینجا Users) ... یا در واقع لایه دوم برنامه :
 
گفته شد که در فیلدهای نوع bit مقادیر true یا false قرار میگیرد ... که در واقع بیان کننده سطح دسترسی هر کاربر هستند !
بدین صورت که اگر هر چهار متغیر دارای مقدار true باشند ، چهار کلید فرم اصلی ببرنامه فعال میشوند ! (بجای کلید میتوان از هر کنترل دیگر استفاده کرد - در اینجا دو کلید ، یک منو و یک جعبه ابزار(toolStrip) استفاده شده)
.
.
.
فراخوانی کلاس دیتااکسس و ایجاد Dataset و چند متغیر 
(در اینجا چهار متغیر به تعداد فیلدهای از نوع bit) ؛
 
کد PHP:
DataAccess DA = new DataAccess(); 
 
        public static bool M = false; 
        public static bool S = false; 
        public static bool B1 = false; 
        public static bool B2 = false; 
 
        public int ID; 
        public string Nam; 
        public string Pas; 
        public bool Mnu; 
        public bool Str; 
        public bool Btn1; 
        public bool Btn2;  
همانطور که مشاهده مینمایید : متغیر های سطح دسترسی در حالت پیشفرض - false هستند .
تذکر : متغیر های سطح دسترسی جهت قابل دسترس بودن در تمام برنامه از نوع static هستند !
 
ایجاد متد سطح دسترسی و دستورات مرتبط با لاگین :
 
کد PHP:
public void Sath(string name) 
        { 
            DA.Connect(); 
            string sql = "Select * From [User] Where Nam = '{0}' "; 
            sql = string.Format(sql, name); 
            DataTable dt = DA.SELECT(sql); 
            DA.Disconnect(); 
 
            M = Convert.ToBoolean(dt.Rows[0]["Mnu"].ToString()); 
            S = Convert.ToBoolean(dt.Rows[0]["Str"].ToString()); 
            B1 = Convert.ToBoolean(dt.Rows[0]["Btn1"].ToString()); 
            B2 = Convert.ToBoolean(dt.Rows[0]["Btn2"].ToString()); 
        } 
 
        public bool Login(string Name, string Pass) 
        { 
            DA.Connect(); 
            string sql = "Select Count(*) From [User] Where Nam = '{0}' And Pas = '{1}'"; 
            sql = string.Format(sql,Name,Pass); 
            DataTable dt = new DataTable(); 
            dt = DA.SELECT(sql); 
            DA.Disconnect(); 
 
            bool Enter = false; 
            if (dt.Rows[0][0].ToString() == "1") 
            { 
                Enter = true; 
            } 
            return Enter; 
        }  
نکته : در واقع در دستورات بالا بیان میکنیم که اگر هر متغر برابر مقدار یک (true) باشد - کلید مربوطه فعال باشد و در غیر اینصورت غیرفعال .
 
دستورات اضافه کردن کاربر جدید و در آخر متد نمایش مشخصات کاربران در دیتاگرید ویو :
 
کد PHP:
 public void ADD() 
        { 
            DA.Connect(); 
            string sql = "Insert Into [User] (ID,Nam,Pas,Mnu,Str,Btn1,Btn2)"; 
            sql += "Values ({0},'{1}','{2}','{3}','{4}','{5}','{6}')"; 
            sql = string.Format(sql, this.ID, this.Nam, this.Pas, this.Mnu, this.Str, this.Btn1, this.Btn2); 
            DA.Execute(sql); 
            DA.Disconnect(); 
        } 
 
        public DataTable ShowData() 
        { 
            DA.Connect(); 
            DataTable dt = DA.SELECT("Select * From [User]"); 
            DA.Disconnect(); 
            return dt; 
        }  
البته جهت یادآوری : میبایست در کلاس ها فضای Data.sqlClient را فراخوانی کنید (using) !

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

طراحی فرم ها و دستورات مربوطه
حال وارد کد نویسی در محیط فرم ها میشویم (در واقع لایه سوم - فراخوانی دستورات در دو لایه قبل)
.
.
.
دستورات مربوط به کلید ورود (log in) :
 
کد PHP:
private void button2_Click(object sender, EventArgs e) 
        { 
            Users us = new Users(); 
            if (us.Login(textBox2.Text, textBox1.Text) == true) 
            { 
                us.Sath(textBox2.Text); 
 
                this.Hide(); 
                Form2 f2 = new Form2(); 
                f2.Show(); 
            } 
            else 
                MessageBox.Show("نام کاربری یا کلمه عبور صحیح نیست");  
و طبیعتا جهت لغو :
 
کد PHP:
 Application.Exit();  
نکته : توجه داشته باشید که در دستورات کلید ورود ... متد سطح دسترسی فراخوانی شده است ، و شرط بررسی سطح به تکست باکس دو (نام کاربری) ارجاع شده !
 
.
.
.
 
در ادامه به مشخص و اعمال سطح دسترسی های تعریف شده در فرم اصلی میپردازیم ؛
دستورات مربوط به تعیین سطح دسترسی در رویداد لود فرم :
 
کد PHP:
private void Form2_Load(object sender, EventArgs e) 
        { 
            menuStrip1.Enabled = Users.M; 
            toolStrip1.Enabled = Users.S; 
            button1.Enabled = Users.B1; 
            button2.Enabled = Users.B2; 
        }  
نکته : در تکه کد بالا ، منو ، جعبه ابزار و دو کلید مورد نظر فعال یا غیر فعال بودنشان از طریق متغیر های تعریف شده (که حالت پیش فرضشان false بود) تعیین می گردد !
بدین ترتیب که با مراجعه به فیلد مورد نظر در جدول و مشخص شدن مقدار (true و یا false) ، کنترل فعال یا غیر فعال میشود .
 
طبیعتا نمایش فرم سوم :
 
کد PHP:
 Form3 f3 = new Form3(); 
            f3.ShowDialog();  
.
.
.
در فرم ایجاد کاربر جدید و تعیین سطح دسترسی ، برای تعیین سطح از چهار comboBox با مقادیر true و false استفاده میکنیم ؛
که مقادیر مورد نظر را در فیلد مربوط به کنترل های فرم اصلی از طریق دستورات ذیل در جدول ذخیره میشوند !
در رویداد لود فرم ، کلاس Users فراخوانی شده و دیتاتیبل جهت نمایش رکوردهای جدول در دیتا گرید ویو :
 
کد PHP:
 private void Form3_Load(object sender, EventArgs e) 
        { 
            Users uss = new Users(); 
            DataTable dt = uss.ShowData(); 
            dataGridView1.DataSource = dt; 
        }  
دستورات کلید ثبت کاربر جدید :
 
کد PHP:
 Users us = new Users(); 
            us.ID = Convert.ToInt32(textBox1.Text); 
            us.Nam = textBox2.Text; 
            us.Pas = textBox3.Text; 
            us.Mnu = Convert.ToBoolean(comboBox1.Text); 
            us.Str = Convert.ToBoolean(comboBox2.Text); 
            us.Btn1 = Convert.ToBoolean(comboBox3.Text); 
            us.Btn2 = Convert.ToBoolean(comboBox4.Text); 
            us.ADD(); 
            Form3_Load(null,null); 
            MessageBox.Show("کاربر جدید ثبت شد");  
 
نکته : توجه داشته باشید که ، مقادیر کمبوباکس ها به bool تبدیل شده و در فیلد های مربوط ذخیره شده اند ...
سپس متد ADD - که دستورات insert را در خود دارد فراخوانی شده !
و از :
 
کد PHP:
Form3_Load(null,null);  
جهت نمایش در دیتاگرید ویو استفاده شده !
نکته : در محیط دستوری فرم ها به هیچ گونه فراخوانی فضای نام (using) نیاز نیست ! تنها کلاس های ایجاد شده را در صورت نیاز فراخوانی کرده ایم .
همانطور که در تصویر ضمیمه مشاهده می نمایید ، فیلدی که دارای (تیک) می باشد ، کنترل مرتبط به خود را در هنگام ورود کاربر فعال میکند .
 
نکته : جهت ورود اولیه (مدیر) می بایست ، یک رکورد از جدول را بصورت دستی مقداردهی کرده و سپس وارد برنامه شوید !
(مقادیر نوع bit را true قرار دهید) ...
.
.
.
در ادامه نحوه حذف ، ویرایش سطح دسترسی و نحوه ویرایش یوزر و پس توسط خود کاربر ارائه می شود .
.
.
.
تا بعد ... یا علی علیه السلام

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

Lightbulb تغییر مکان فرم در صفحه نمایش با استفاده از MouseDown
تعریف متغیر های لازم :
کد PHP:
int X, Y; 
        bool Drag = false;  
دستورات مربوط به رویداد های موس :
 
کد PHP:
private void Form1_MouseDown(object sender, MouseEventArgs e) 
        { 
            Drag = true; 
            X = e.X; 
            Y = e.Y; 
        } 
 
        private void Form1_MouseMove(object sender, MouseEventArgs e) 
        { 
            if (Drag == false) 
                return; 
            Point pCurent = Location; 
            Location = new Point(Location.X + e.X - X, Location.Y + e.Y - Y); 
        } 
 
        private void Form1_MouseUp(object sender, MouseEventArgs e) 
        { 
            Drag = false; 
        }  
حالا با کلیک روی هر قسمت از فرم و نگه داشتن آن میتوان فرم را جابجا نمود !

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

Talking نحوه استفاده از اسکنر با wia
ایجاد کلاس مربوطه :
 
کد PHP:
using System;
using System.Collections.Generic;
using System.IO;
using System.Drawing;
 
namespace Test_Code_Csharp
{
    class WIAScanner
    {
        const string wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";
        class WIA_DPS_DOCUMENT_HANDLING_SELECT
        {
            public const uint FEEDER = 0x00000001;
            public const uint FLATBED = 0x00000002;
        }
        class WIA_DPS_DOCUMENT_HANDLING_STATUS
        {
            public const uint FEED_READY = 0x00000001;
        }
        class WIA_PROPERTIES
        {
            public const uint WIA_RESERVED_FOR_NEW_PROPS = 1024;
            public const uint WIA_DIP_FIRST = 2;
            public const uint WIA_DPA_FIRST = WIA_DIP_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
            public const uint WIA_DPC_FIRST = WIA_DPA_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
            public const uint WIA_DPS_FIRST = WIA_DPC_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
            public const uint WIA_DPS_DOCUMENT_HANDLING_STATUS = WIA_DPS_FIRST + 13;
            public const uint WIA_DPS_DOCUMENT_HANDLING_SELECT = WIA_DPS_FIRST + 14;
        }
 
        public static List<Image> Scan()
        {
            WIA.ICommonDialog dialog = new WIA.CommonDialog();
            WIA.Device device = dialog.ShowSelectDevice(WIA.WiaDeviceType.UnspecifiedDeviceType, true, false);
            if (device != null)
            {
                return Scan(device.DeviceID);
            }
            else
            {
                throw new Exception("You must select a device for scanning.");
            }
        }
 
        public static List<Image> Scan(string scannerId)
        {
            List<Image> images = new List<Image>();
            bool hasMorePages = true;
            while (hasMorePages)
            {
                WIA.DeviceManager manager = new WIA.DeviceManager();
                WIA.Device device = null;
                foreach (WIA.DeviceInfo info in manager.DeviceInfos)
                {
                    if (info.DeviceID == scannerId)
                    {
                        device = info.Connect();
                        break;
                    }
                }
                if (device == null)
                {
                    string availableDevices = "";
                    foreach (WIA.DeviceInfo info in manager.DeviceInfos)
                    {
                        availableDevices += info.DeviceID + "\n";
                    }
                    throw new Exception("The device with provided ID could not be found. Available Devices:\n" + availableDevices);
                }
                WIA.Item item = device.Items[1] as WIA.Item;
                try
                {
                    WIA.ICommonDialog wiaCommonDialog = new WIA.CommonDialog();
                    WIA.ImageFile image = (WIA.ImageFile)wiaCommonDialog.ShowTransfer(item, wiaFormatBMP, false);
                    string fileName = Path.GetTempFileName();
                    File.Delete(fileName);
                    image.SaveFile(fileName);
                    image = null;
                    images.Add(Image.FromFile(fileName));
                }
                catch (Exception exc)
                {
                    throw exc;
                }
                finally
                {
                    item = null;
                    WIA.Property documentHandlingSelect = null;
                    WIA.Property documentHandlingStatus = null;
                    foreach (WIA.Property prop in device.Properties)
                    {
                        if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_SELECT)
                            documentHandlingSelect = prop;
                        if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_STATUS)
                            documentHandlingStatus = prop;
                    }
                    hasMorePages = false;
                    if (documentHandlingSelect != null)
                    {
                        if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_SELECT.FEEDER) != 0)
                        {
                            hasMorePages = ((Convert.ToUInt32(documentHandlingStatus.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_STATUS.FEED_READY) != 0);
                        }
                    }
                }
            }
            return images;
        }
 
        public static List<string> GetDevices()
        {
            List<string> devices = new List<string>();
            WIA.DeviceManager manager = new WIA.DeviceManager();
            foreach (WIA.DeviceInfo info in manager.DeviceInfos)
            {
                devices.Add(info.DeviceID);
            }
            return devices;
        }
    }
}  
یک کنترل pictureBox در فرم قرار داده و دستورات زیر را در رویداد باتون کلیک :
 
کد:
private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                List<string> devices = WIAScanner.GetDevices();
                foreach (string device in devices)
                {
                    lbDevices.Items.Add(device);
                }
                if (lbDevices.Items.Count == 0)
                {
                    MessageBox.Show("You do not have any WIA devices.");
                    this.Close();
                }
                else
                {
                    lbDevices.SelectedIndex = 0;
                }
                List<Image> images = WIAScanner.Scan((string)lbDevices.SelectedItem);
                foreach (Image image in images)
                {
                    pictureBox1.Image = image;
                    pictureBox1.Show();
                    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                    image.Save(@"D:\" + DateTime.Now.ToString("yyyy-MM-dd HHmmss") + ".jpeg", ImageFormat.Jpeg);
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
        }
و یک کنترل listBox بنام (lbDevices)
 
و یوزینگ بصورت :
 
کد:
using WIA;
فایل dll زیر رو هم بصورت Refrences به برنامه اضافه کنید ...

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

Lightbulb کد تبدیل ارقام به حروف
سلام به همه ...
یه کلاس به پروژه اضافه کنید (اینجا به اسم NumtoStr)
 
کد:
class NumtoStr
    {
        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 == "") return "صفر";
            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;
        }
    }
}
جهت استفاده هم (طبیعتا به یه دکمه و لیبل نیازه) تو رویداد باتون کلیک :
 
کد:
NumtoStr ns = new NumtoStr();
            label1.Text = ns.num2str(textBox1.Text) + "تومان";
تاجایی که من امتحان کردم , خطایی چیزی نداره !

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

چک کردن فیلد یا رکورد تکراری
خوب اینم یک آموزش دیگه واسه دوستانی که می خواهن فیلد تکراری یا رکورد تکراری رو چک کنند حالا هر کاری می خواهید بکنید یا یک اروری بده به کاربر که بگه این کاربر قبلا ثبت شده یا اینکه بگه بر فرض مثال یک پروژه انبار داری می نویسید و می خواهید که کد کالا یا نام کالا تکراری وارد نشه خوب بریم سراغ آموزش
همراه با کامینت گذاری شده خدمت دوستان موفق باشید.
 
کد PHP:
  // یک زیروال برای اینکه هرجایی که بخواهیم فراخوانی کنیم یا در اثر همون تابعی که هیچ مقداری رو بر نمی گردونه 
        void chekedname() 
        { 
            // یک دیتا تیبل برای اینکه اطلاعات اولیه رو بریزیم توش تا چک کنیم 
                 DataTable dy = new DataTable(); 
            //دستور کانکشن 
            con = new SqlConnection(strcon); 
            //دستور چک کردن فیلد تکرای 
            // خوب یک توضیخ بدم خدمت دوستان  
            // ببین الان داره استخراج می کنه از جدول انبار یک به شرطی نامش برابر 
            // با اون فیلد هستش خوب شما می تونید به جای نام اون فیلدی که دوست دارید تکراری وارد نشه بزارید 
            string chek = "select name from TblAnbar1 where name='" + Txtname.Text + "'"; 
            //دستور بردن اطلاعات اطلاعت 
            sqldata = new SqlDataAdapter(chek, con); 
            // بافر یا همون جدول رو یک بار پاک می کنه یا آماده میکنه 
            dy.Clear(); 
            // پر کردن اطلاعات جدول 
            sqldata.Fill(dy); 
            // نکته مهم اینجاست اگر داخل جدول یا دیتا گریدو بود ارور بده یا مسج بده بگو که هست این نام 
             if (dy.Rows.Count > 0) 
            { 
                string mesg = MessageBox.Show("نام کالا قبلا ثبت شده است", "اخطار").ToString ();                  
            } 
                // یا در غیراینصورت اطلاعات رو ذخیره یا درج کن موفق باشید دوستان عزیز 
            else 
            { 
                insert_case_data(); 
            } 
        }  

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

با سلام و خسته نباشید خدمت دوستان عزیز
 
ممکنه واسه خیلی ها پیش اومده باشه که بخواهن کاربری رو چک کنند داخل که عضو کتابخانه هستش یا اینکه یک پروژه بر فرض مثال باشگاه بدن سازی هستش و یا غیره... که اکثرا در پروژه های کتابخانه ازش استفاده می کنند که کاربری می خواهد کتابی رو امانت ببره عضو هستش که کتاب بهش بده سیستم یا خیر خوب بریم سراق آموزش همراه با کامینت گذاری شده خدمت دوستان عزیز و موفق باشید.
و همون کد بالاست فقط تو مسجش دقت کنید و تفاوتتشون رو هم گفتم موفق باشید بازم
 
کد PHP:
  void cheked()
        {
            DataTable dy = new DataTable();
            con = new SqlConnection(strcon);
            string chek = "select id from TblAnbar1 where id='" + Txtid.Text + "'";
            sqldata = new SqlDataAdapter(chek, con);
            dy.Clear();
            sqldata.Fill(dy);
 
            // نکته اش همین جاست
            // اگر کاربر موجود بود یعنی ثبت نام شده قبلا و امانت یا بهش کتاب یا خلاصه غیره... 
            if (dy.Rows.Count > 0)
            {
               //دستور ذخیره یا فراخوانی زیروال برای ذخیره یا امانت دادن کتاب یا .....غیره 
                insert_case_data();
            }
                // در غیر این صورت ارور مربوطه رو بده
            else
            {
                MessageBox.Show("کاربر مورد نظر شما عضو نیستید لطفا اول ثبت نام کنید");
            }
        }
 
 
 
        // تفاوت این کد با بالا این هستش که میاد چک می کنه اگر کالا بود ارور میده ولی این اگر طرف بود ثبت نام میشه
        // در غیر این صورت ارور رو میده امیدوارم رسونده باشم موفق باشید
        void chekedname()
        {
                 DataTable dy = new DataTable();
            con = new SqlConnection(strcon);
            string chek = "select name from TblAnbar1 where name='" + Txtname.Text + "'";
            sqldata = new SqlDataAdapter(chek, con);
            dy.Clear();
            sqldata.Fill(dy);
             if (dy.Rows.Count > 0)
            {
                string mesg = MessageBox.Show("نام کالا قبلا ثبت شده است", "اخطار").ToString ();                 
            }
            else
            {
                insert_case_data();
            }
        }  

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

Thumbs up High Light سطرهای دیتاگرید ویو ...
سلام به همه ...
جهت های لایت کردن دیتاگرید ویو با آمدن موس روی هر سطر ....
 
کد PHP:
public Listcam()        { 
            InitializeComponent(); 
        } 
  
  
        private DataGridViewCellStyle HighlightStyle; 
        private int HighlightedRowIndex = -1; 
        private void SetRowStyle(DataGridViewRow row, DataGridViewCellStyle style) 
        { 
            foreach (DataGridViewCell cell in row.Cells) 
            { 
                cell.Style = style; 
            } 
        }  
در رویداد CellMouseEnter :
 
کد PHP:
if (e.RowIndex == HighlightedRowIndex) return;            if (HighlightedRowIndex >= 0) 
            { 
                SetRowStyle(dataGridView1.Rows[HighlightedRowIndex], null); 
            } 
            HighlightedRowIndex = e.RowIndex; 
            if (HighlightedRowIndex >= 0) 
            { 
                SetRowStyle(dataGridView1.Rows[HighlightedRowIndex], HighlightStyle); 
            }  
و در رویداد CellMouseLeave :
 
کد PHP:
if (HighlightedRowIndex >= 0)            { 
                SetRowStyle(dataGridView1.Rows[HighlightedRowIndex], null); 
                HighlightedRowIndex = -1; 
            }  
تا حالا که هیچ اتفاقی نیوفتاده !!!
 
در روی داد لود فرم : (جهت تعیین رنگ و فونت و ...)
 
کد PHP:
HighlightStyle = new DataGridViewCellStyle();            HighlightStyle.ForeColor = Color.Red; 
           HighlightStyle.BackColor = Color.Yellow; 
           HighlightStyle.Font = new System.Drawing.Font(dataGridView1.Font, FontStyle.Bold);  
---------------
 
دوستان اگر بیشتر از یک دیتاگرید ویو داشته باشید می بایست دستورات رویداد موس اینتر و موس لیو در دیتاگریدویو بعدی مجددا نوشته شود و نام دیتاگریدویو در خط زیر تغییر کند :
 
کد PHP:
HighlightStyle.Font = new System.Drawing.Font(dataGridView1.Font, FontStyle.Bold);  

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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

پاسخ به:آموزش های مرتبط با # c

Talking مسیج باکس سفارشی ...
سلام به همه ...
با آموزش ساده یک جعبه پیغام ساده در خدمتون هستیم !
-------------------------------------------------------------
طبیعتا باس یه فرم به پروژه اضاف کنید : (اینجا به اسم --> MyMessageBox)
یه تایمر (برای زمان باز بودن یا همون نمایش پیغام) ---> شما می تونید نذارین - سلیقه ای هستش !
و 3 تا لیبل : یکی واسه نمایش متن پیغام - یکی واسه تیتر - یکی واسه شمارنده تایمر
و 2 تا باتون ...
------------------------------------------------------------
اصل مطلب :
 
تعیین فرم ، بعنوان مسیج باکس پیشفرض و متغیر های مورد نیاز :
 
کد PHP:
public partial class MyMessageBox : Form*** {******  
********static MyMessageBox newMessageBox; 
********public Timer msgTimer; 
********static string Button_id; 
********int disposeFormTimer;  
(جهت فراخوانی پیغام در برنامه --> ShowBox) :
 
کد PHP:
public static string ShowBox(string txtMessage)        { 
    newMessageBox = new MyMessageBox(); 
    newMessageBox.lblMessage.Text = txtMessage; 
    newMessageBox.ShowDialog(); 
    return Button_id; 
}  
تعیین قرار گرفتن متن پیغام در لیبل --> lblMessage و تیتر در لیبل --> lblTitle :
 
کد PHP:
public static string ShowBox(string txtMessage, string txtTitle)        { 
            newMessageBox = new MyMessageBox(); 
            newMessageBox.lblTitle.Text = txtTitle; 
            newMessageBox.lblMessage.Text = txtMessage; 
            newMessageBox.ShowDialog(); 
            return Button_id; 
        }  
در رویداد لود_فرم (فرم مسیج باکس) : تعیین زمان نمایش مسیج باکس (در اینجا 30 ثانیه) و شمارش در لیبل lblTimer 
 
کد PHP:
private void MyMessageBox_Load(object sender, EventArgs e)        { 
            disposeFormTimer = 30; 
            newMessageBox.lblTimer.Text = disposeFormTimer.ToString(); 
            msgTimer = new Timer(); 
            msgTimer.Interval = 1000; 
            msgTimer.Enabled = true; 
            msgTimer.Start(); 
            msgTimer.Tick += new System.EventHandler(this.timer_tick);  
        }  
رویداد کلید OK : (کلید بله)
 
کد PHP:
private void btnOK_Click(object sender, EventArgs e)        { 
            newMessageBox.msgTimer.Stop(); 
            newMessageBox.msgTimer.Dispose(); 
            Button_id = "1"; 
            newMessageBox.Dispose();  
        }  
رویداد کلید Cancel : (کلید خیر)
 
کد PHP:
private void btnCancel_Click(object sender, EventArgs e)        { 
           newMessageBox.msgTimer.Stop(); 
           newMessageBox.msgTimer.Dispose(); 
           Button_id = "2";  
           newMessageBox.Dispose(); 
       }  
رویداد تایمر_کلیک : که پس از اتمام شمارش جعبه پیغام بطور خودکار بسته شود !
 
کد PHP:
private void timer_tick(object sender, EventArgs e)        { 
            disposeFormTimer--; 
  
  
            if (disposeFormTimer >= 0) 
            { 
                newMessageBox.lblTimer.Text = disposeFormTimer.ToString(); 
            } 
            else 
            { 
                newMessageBox.msgTimer.Stop(); 
                newMessageBox.msgTimer.Dispose(); 
                newMessageBox.Dispose(); 
            } 
        }  
--------------------------------------------------
ناگفته نماند که در این روش شما اگه اسم فرم رو MassegeBox بزارین دیگه به مسیج باکس پیشفرض VS دسترسی ندارین ، و به طبع اون به آیکون ها و دکمه ها ...
پس یه پیش یا پسوند کنارش بزارین یا یه اسم دیگه ...
 
و برای اینکه تمام پیغام هاتون یه شکل باشن باس :
پس خودتون باس تعداد کلید ها و تصیویر مورد نظر رو اضافه کنید ...
که اگر چند نوع (ترکیب باتون) استفاده کنید می بایست چند فرم ایجاد کند (با ظاهر مورد نظر)
حالا میرسیم به فراخوانی مسیج باکس ...
 
رویداد باتون_کلیک --> کلید اول :
 
 
کد PHP:
private void button1_Click(object sender, EventArgs e)        { 
           string result = MyMessageBox.ShowBox("Do you want to exit?", "Exit"); 
           if (result.Equals("1")) 
           { 
               MessageBox.Show("OK Button was Clicked"); 
           } 
  
  
           if (result.Equals("2")) 
           { 
               MessageBox.Show("Cancel Button was Clicked"); 
                           و یا بستن فرم مسیج با یه کلوز ساده // 
           } 
       }  
و باتون دوم :
 
کد PHP:
private void button2_Click(object sender, EventArgs e)        { 
           string result = MyMessageBox.ShowBox("آیا قصد خروج از برنامه را دارید ?", "خروج از برنامه");           
       }  
 
 
 
 
یا علی !

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

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