jozve c#3 mohamady

23
مهدیحمدی م برنامه سازی جزوه3 1 برنامه سازی جزوه درس سهC# کننده:یه ته م هدیحمدی مرستان هن کتابچی کاشان حرفه ای فنی زمستان94

Upload: daneshfd

Post on 05-Jan-2017

141 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

1

سهجزوه درس برنامه سازی

C#

محمدی هدیم تهیه کننده:

فنی حرفه ای کتابچی کاشانهنرستان

94 زمستان

Page 2: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

2

فصل اول: آشنایی با چند کنترل جدید

دکمه های رادیوی Radio Button

بین چند گزینه استفاده می شود. مثال برای انتخاب از این کنترل برای انتخاب یک گزینه از

یک رنگ) آبی ، سبز یا قرمز( یا برای انتخاب جنسیت)مرد یا زن( از این کنترل می توان

تفاده کرد.اس

در صورتی که بخواهید دو دسته دکمه رادیویی مستقل از یکدیگر، روی فرم داشته باشید، باید هر دسته از دکمه ها را داخل

قرار دهید. Group Boxب مانند یک قا

آن استفاده می شود. اگر دکمه checkedبرای بررسی وضعیت ) انتخاب یا عدم انتخاب( یک دکمه رادیویی از مشخصه

است. falseاست و گرنه trueرادیویی انتخاب شده باشد آنگاه این مشخصه

مثال(

استفاده می کنیم. CheckBoxنکته( اگر بخواهیم امکان انتخاب چند گزینه را داشته باشیم از کنترل

کاهشی-کنترل عددی افزایشی :Numeric UP Down

کنترل عددی استفاده می شود. برای دریافت داده های عددی در یک محدوده ی مشخص textboxاز این کنترل نیز مانند

بر می گرداند. عدداست که عدد وارد شده در این کنترل را به صورت value کاهشی، دارای مشخصه -افزایشی

: Numeric Up Downمشخصات مهم کنترل

Value عدد وارد شده در کنترل :

Maximum .عددی که حداکثر مقداری که می توان وارد کرد را تعیین می کند :

Minimum .عددی که حداقل مقداری که می توان وارد کرد را تعیین می کند :

کار در کارگاه:

تولید می شود و کاربر باید در مدت زمان مشخصی جمع دو 50تا 0دو عدد تصادفی بین "شروع"با کلیک بر روی دکمه

کاهشی وارد کند. -عدد را در کنترل عددی افزایشی

در این کالس یک عدد تصادفی تولید می کند. Nextاستفاده می شود. متد Randomبرای تولید اعداد تصادفی از کالس

ثال( نحوه تولید اعداد تصادفی:م

if (radioButton1.Checked == true) label1.ForeColor = Color.Blue; if (radioButton2.Checked) label1.ForeColor = Color.Red; if (radioButton3.Checked) label1.ForeColor = Color.Green;

Page 3: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

3

Random rn = new Random(); x = rn.Next(); y = rn.Next(100); z = rn.Next(1, 51);

عددی تصادفی صحیح بین zاست. 99تا 0عددی تصادفی صحیح بین yیک عددی تصادفی صحیح است. x در مثال فوق

است. 50تا 1

عدد وارد شده توسط کاربر استفاده می شود.در این تمرین یک تایمر برای بررسی

است. falseبه طور پیش فرض timer، کنترل Enableنکته( مشخصه

:"شروع"قسمتی از کد دکمه ی Random rn = new Random(); x = rn.Next(1, 51); y = rn.Next(1, 51); label1.Text = x.ToString(); label2.Text = y.ToString(); timer1.Enabled = true;

سوال( کد زیر چه عملی را انجام می دهد؟Random R = new Random(); x = R.Next(1, 51); y = R.Next(1, x);

:کادر پیامMessage Box

استفاده MessageBoxکالس Show( توسط کاربر از متد … ,Yes , Noکادر پیام و انتخاب یک دکمه )برای نمایش

حالت کلی این متد: است. DialogResultمی شود. خروجی این متد از نوع داده ی شمارشی

MessageBox.Show( دکمه پیش فرض , آیکون , دکمه ها , عنوان پنجره , پیام );

تعیین می شوند که در فضای نام MessgeBoxButtonsبه وسیله نوع داده شمارشی MessageBoxدکمه های پنجره پیام

System.Windows.Forms .قرار دارد

DialogResult result = MessageBox.Show("Do you want Exit?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

if (result == DialogResult.Yes) this.Close();

سوال( دستورات زیر چه عملی را انجام می دهند؟int n = textBox1.TextLength; textBox1.Clear(); textBox1.Focus();

Page 4: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

4

تمرین( برنامه مترجم

string[] En = { "book", "teacher", "door", "box", "computer", "bag", "line" }; string[] Fr = { "خط" ,"کیف" ,"کامپیوتر" ,"جعبه" ,"در" ,"معلم" ,"کتاب" }; bool find = false; int i; textBox2.Clear(); if(radioButton1.Checked ) { string key = textBox1.Text; key=key.ToLower(); for(i=0; i<En.Length ; i++) if(key==En[i]) { find = true; break; } if (find) textBox2.Text = Fr[i]; } if (radioButton2.Checked) { string key = textBox1.Text; for (i = 0; i < Fr.Length; i++) if (key == Fr[i]) { find = true; break; } if (find) textBox2.Text = En[i]; }

:ها تست شود، کدام کنترل مناسب است؟به منظور انتخاب جنسیت) مرد یا زن( به طوریکه با انتخاب یکی دیگری از انتخاب خارج -1

Buttonد( Radio Buttonج( ListBoxب( CheckBoxالف( در زمان اجرا در حالت انتخاب شده باشد، کدام خاصیت را به چه مقداری باید تنظیم کرد؟ Radio Buttonبرای اینکه کنترل -2

Checked=trueد( Checked=yesج( Selected=yesب( Selected=trueالف( به منظور اینکه عالمت مربع دکمه رادیویی در سمت راست دیده شود، کدام خاصیت را به چه مقداری باید تنظیم کرد؟ -3

Dock=Rightد( Position=Rightج( RightToLeft=Trueب( RightToLeft=Yesالف( برای اینکه دو دسته دکمه رادیویی مستقل از هم داشته باشیم، هر دسته را در کدام کنترل باید قرار دهیم؟-4

Formد( Borderج( GroupBoxب( Frameالف(

پیام از کدام متد استفاده می شود؟ به منظور نمایش MessageBoxدر کالس -5

Page 5: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

5

Viewد( Displayج( ShowShowDialogب( Showالف(

نیز مشاهده شود، کدام دستور باید در پارامترهای Yes ,Noبرای اینکه در کادر پیام دو دکمه MessageBox.Showدر متد -6

آن تنظیم کرد؟

MessageBoxButtons=YesNoب( MessageButtons=YesNoالف(

MessageButtons.YesNoد( MessageBoxButtons.YesNoج(

ای چه دکمه ای فشرده شده است، از کدام گزینه استفاده می شود؟ برای بررسی اینکه در کادر محاوره -7

DialogResultب( نوع داده متنی DialogResultالف( نوع داده شمارشی

Resultد( نوع داده متنی Resultج( نوع داده شمارشی

8- DialogResult رگشتی دکمه فشرده شده در کادر محاوره ای استفاده می شود، از کدام نوع است؟که برای بررسی مقدار ب

Integerد( Arrayج( Enumeratedب( stringالف(

به منظور بستن فرمی کدام دستور را در رویداد مربوط به آن فرم می نویسیم؟ -8

()this.Closeد( ()form.Closeج( ()form.exitب( ()this.exitالف(

کلیک کنیم، مقدار مشخصه ...... آن به NumericUpDownچنانچه بر روی دکمه های افزاینده و یا کاهنده کنترل -9

)راست به چپ(اندازه مقدار موجود در مشخصه ...... تغییر خواهد کرد.

Value - Incrementب( Maximum - Valueالف(

Maximum – Incrementد( Increment - Valueج(

از نوع ...... می باشد؟ MessageBoxاز کالس Showخروجی متد -10

DialogResultد( DialogButtonج( MessageResultب( MessageButtonالف(

را نشان داده است را 6بار پرتاپ کند و تعداد دفعاتی که تاس عدد 20تمرین عملی( برنامه ایی بنویسید که یک تاس را

نمایش دهید؟

Page 6: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

6

رویدادهای ماوس و صفحه کلید: دومصل ف

رویدادهای ماوس:

با همچنین ( برنامه ایی بنویسید که با حرکت ماوس بر روی فرم مختصات محل ماوس را بر روی فرم نمایش دهد.تمرین

تصویر داخل آن تغییر کند. picturebox1ورود و خروج ماوس روی

نقطه مبدا مختصات یک شی بر اساس گوشه ی VSدر نکته(

باال سمت چپ در نظر گرفته می شود.

هنگامی که ماوس بر روی فرم حرکت می کند رویداد

Mousemove فرم اجرا خواهد شد. این رویداد دارای

است که به کمک آن می توان موقعیت ماوس را بدست آورد. eپارامتری به نام private void Form1_MouseMove(object sender, MouseEventArgs e) { label1.Text = "X=" + e.X.ToString() + " Y=" + e.Y.ToString(); }

e.X وe.Y .مختصات ماوس را بر حسب پیکسل برمی گردانند

خارج PictureBoxاجرا می شود و هنگامی که ماوس از MouseEnterمی شود رویداد PictureBoxوس وارد هنگامی که ما

اجرا می شود. MouseLeaveمی شود رویداد private void pictureBox1_MouseEnter(object sender, EventArgs e) { pictureBox1.Image = Properties.Resources.a;

Page 7: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

7

} private void pictureBox1_MouseLeave(object sender, EventArgs e) { pictureBox1.Image = Properties.Resources.b; }

برای تغییر شکل ماوس بر روی فرم هنگامی که فرم در حافظه بارگذاری می شود کد زیر نوشته می شود.private void Form1_Load(object sender, EventArgs e) { this.Cursor = Cursors.Cross; label1.Cursor = Cursors.Default; }

تعریف شده که دارای تعدادی ویژگی استاتیک است که هر یک از آنها، شکل Cursorsکالسی به نام NET.در کتابخانه

مختلفی از عالمت ماوس است.

س سمت راست ماو( برنامه ایی بنویسید که با فشار دادن کلید سمت چپ ماوس رنگ فرم زرد و با فشار دادن کلید تمرین

رنگ فرم سبز شود.private void Form1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) this.BackColor = Color.Yellow; if (e.Button == MouseButtons.Right) this.BackColor = Color.Green; }

راست باال ی فرم قرار گرفت رنگ فرم آبی، در ناحیه سمت راست تمرین( برنامه ایی بنویسید که وقتی ماوس در ناحیه سمت

پایین فرم رنگ قرمز، در ناحیه سمت چپ باالی فرم رنگ زرد و اگر در ناحیه سمت چپ پایین فرم قرار گرفت رنگ فرم سبز

شود.

بازی شروع می شود و با start: با کلیک روی دکمه mazeتمرین( بازی

حرکت ماوس در مسیر مشخص شده و رسیدن به تصویر انتهای مسیر،

کاربر برنده شده است و اگر از مسیر خارج شود بازنده است.

استفاده می شود و Form_MouseEnterبرای نوشتن این بازی از رویداد

برای برنده شدن اعالم می شود. پیام مناسب "هدف"با رسیدن ماوس به

در این بازی می توان مدت زمان حرکت ماوس در بین مسیر را نیز نمایش

داد.private void Form1_MouseEnter(object sender, EventArgs e)

{ if (play) // paly is a global variable. { play = false; timer1.Enabled = false; this.Cursor = Cursors.Default; MessageBox.Show("Game Over"); } }

یک برچسب چینش متن را مشخص می کند.)باال، پایین، چپ، راست یا وسط( TextAlignنکته(ویژگی

Page 8: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

8

باشد می توان اندازه برچسب را به دلخواه تغییر داد. Falseیک برچسب اگر AutoSizeنکته( ویژگی

بازی تمرین قبل را طوری تغییر دهید که کاربر بعد از سه بار خارج شدن از مسیر بازنده اعالم شود.تمرین(

نکته( برای مخفی و آشکار شدن شکلک ماوس از دستورات زیر استفاده می شود:Cursor.Hide(); Cursor.Show();

رویدادهای صفحه کلید:اجرا می شوند. اگر کاربر یک KeyUpو KeyPressو KeyDownهنگامی که کاربر کلیدی را می زند، به ترتیب رویدادهای

اجرا می شوند و وقتی کلید رها می شود KeyPressو KeyDownکلید را فشار دهد و آن را نگه دارد، به طور مکرر رویدادهای

یکبار اجرا می شود. KeyUpرویداد private void Form1_KeyDown(object sender, KeyEventArgs e) { } private void Form1_KeyPress(object sender, KeyPressEventArgs e) { } private void Form1_KeyUp(object sender, KeyEventArgs e) { }

کمی متفاوت است. KeyPressشبیه هم هستند و عملکرد آنها با رویداد KeyUpو KeyDownپارامتر های رویدادهای

چند نکته در مورد صفحه کلید و کد کلیدها:

F12تا F1برخی از کلیدهای صفحه را کلیدهای غیرچاپی می نامند)با فشردن آنها عالمتی در مانیتور ظاهر نمی شود( مانند

و ... Home , Alt , Shift ,Crtrl, Endو

هستند. اسکن کد برای حروف بزرگ و کوچک یکسان است و برابر کد scan codeهمه کلیدهای صفحه کلید دارای کد

است. کلیدهای غیر چاپی هم اسکن کد دارند. 65فارسی( برابر 'ش') حتی Aیا aحرف بزرگ است. اسکن کد

97برابر aیونیکد هستند و یونیکد کاراکترهای کوچک و بزرگ متفاوت است. مثال یونیکد کاراکتر کاراکترهای چاپی دارای

است. 65برابر Aاست و یونیکد کاراکتر

نمیمی توان اسکن کد کلید زده شده را بدست آورد. لذا با این دو رویداد eبا پارامتر KeyUpو KeyDownدر رویداد های

توان تشخیص داد که کاربر حرف کوچک یا بزرگ را زده است) همه حروف انگلیسی را به صورت بزرگ تشخیص می دهد(

قابلیت تشخیص کلیدهای ترکیبی را نیز دارند. KeyUpو KeyDownرویدادهای

و نام کلید 2برچسب کلید زده شده در نام و 1مثال( برنامه زیر وقتی یک کلید زده می شود اسکن کد آن در یک برچسب

نمایش داده می شود. 3ترکیبی در برچسب private void Form1_KeyDown(object sender, KeyEventArgs e) { label1.Text = (e.KeyValue).ToString(); label2.Text = (e.KeyCode).ToString(); label3.Text = (e.KeyData).ToString(); }

Page 9: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

9

چهار نمونه از اجرای رویداد فوق در شکل روبرو مشاهده می شود.

زده شده است. aدر شکل اول) باال سمت چپ( کلید

حاوی مقادیر کدها با نام کلیدها است. Keysنوع داده ی شمارشی

1ماشین حساب صفحه کلید با اسکن کد کلید 1آیا اسکن کد کلید ( سوال

در قسمت حروف صفحه کلید برابر است؟

را تشخیص داد. Shiftو CTRLو ALTمی تواند کلیدهای KeyUpو KeyDownدر رویدادهای eپارامتر با

برنامه زیر را بررسی کنید:private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.F1 && e.Alt == true) this.BackColor = Color.Blue; if (e.KeyCode == Keys.Enter && e.Shift == true) this.Close(); if (e.KeyCode == Keys.A && e.Control == true) this.Text = "Mohammadi"; }

و KeyDownرا می زند فقط رویدادهای F5فقط برای کلیدهای چاپی اجرا می شود. وقتی کاربر کلید KeyPressرویداد

KeyUp اجرا می شوند. اما وقتی کلیدs را می زند رویدادهایKeyDown وKeyPress وKeyUp .اجرا می شوند

می توان کاراکتر زده شده را بدست آورد. eپارامتر با KeyPressدر رویداد

Page 10: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

10

private void Form1_KeyPress(object sender, KeyPressEventArgs e) { label1.Text = (e.KeyChar).ToString(); label2.Text = ((int)e.KeyChar).ToString(); // تبدل کاراکتر زده شده به یونیکد }

می تواند حرف کوچک و بزرگ را تشخیص دهد. اما نمی تواند کلید های ترکیبی را تشخیص دهد و برای KeyPress رویداد

کلیدهای غیرچاپی اجرا نمی شود.

می تواند کاراکترهای فارسی را نیز تشخیص دهد. زیرا KeyPressرویداد

e.Keychar .ت ) دقدر این رویداد، کاراکتر زده شده را با یونیکد نمایش می دهد

این قابلیت را ندارند( KeyUpو KeyDownشود که رویدادهای

بیانگر کاراکتر زده شده توسط کاربر است. e.Keycharنکته(

را بزند رنگ فرم سبز شود و اگر Ctrl+Bآبی شود. اگر کلید را بزند رنگ فرم bتمرین( برنامه ایی بنویسید که اگر کاربر حرف

حرف فارسی زده شود رنگ فرم قرمز شود.

ساخت یک کادر متنی عددی: می خواهیم برنامه ایی بنویسیم که در کادر متنی کاربر فقط عدد بتواند تایپ کند. در صورت

زدن کلید غیر عددی، مانع اعمال آن کلید می شویم.private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (!(char.IsDigit((char)e.KeyCode) || e.KeyCode == Keys.Back || e.KeyCode == Keys.Delete)) e.SuppressKeyPress = true; }

برمی گرداند. trueاست که اگر پارامتر ورودی آن یک کاراکتر عددی باشد، مقدار IsDigitدارای متدی به نام charساختار

بررسی می کند که ورودی آن حرف الفبایی است یا خیر. charبرای ساختار IsLetterمتد char.IsDigit('3') true char.IsDigit('a') false char.IsLetter('a') true

باعث می شود کد کاراکتر زده شده به حرف متناظر تبدیل شود.e.KeyCode(char) ر مثال فوق د

باعث می شود کلید زده شده کنسل شود. e.SuppressKeyPress = trueدر مثال فوق

سوال( برنامه فوق را طوری تغییر دهید که کلیدهای جهت نمای راست و چپ نیز در کادر متن نیز عمل کند؟

برنامه ایی بنویسید که کاربر با نگه داشتن دکمه سمت راست ماوس روی یک برچسب و حرکت آن بتواند برچسب را سوال(

تغییر مکان دهد.

سوال( برنامه ایی بنویسید که با کلیدهای جهت نما یک برچسب بر روی فرم حرکت کند.

، رویداد کلیک آن اجرا شود. Enterزدن فرم برای انتخاب دکمه پیش فرض است تا با AcceptButtonنکته( ویژگی

است که دارای چهار پارامتر برای تعیین رنگ قرمز، سبز و آبی است و FromArgbدارای متدی به نام Colorنکته( ساختار

تعیین می کند.یک پارامتر هم شفافیت رنگ را label1.ForeColor = Color.FromArgb(100, 200, 50, 40);

باشند رویدادهای صفحه کلید فرم دیگر اجرا نمی شوند، مگر اینکه مشخصه textboxنکته( در صورتی که در فرم اشیایی مانند

KeyPreview فرم راTrue .کنیم

Page 11: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

11

(تست

در کدام رویداد ماوس با ورود به شی اتفاق می افتد؟-1

MouseUpد( MouseEnterج( MouseLeaveب( MouseHoverالف(

مربوط به کدام گزینه است؟ MouseHoverرویداد -2

الف( چندلحظه نگه داشتن ماوس روی کنترل ب( ورود از خارج کنترل بر روی شی

کمه ماوس روی فرم یا کنترلج( خارج شدن ماوس از روی فرم یا کنترل د( فشردن د

هنگامی که ماوس بر روی فرم حرکت می دهیم چه رویدادی اتفاق می افتد؟ -3

MouseUpد( MouseMoveج( MouseLeaveب( MouseHoverالف(

رویداد دسترسی داشت؟به وسیله ی کدام پارامتر در رویدادهای ماوس می توان به جزییات -4

objectد( argsج( eب( senderالف(

گزینه استفاده می شود؟برای اینکه بدانیم چه تعداد دفعاتی دکمه ماوس فشرده شده است از کدام -5

e.sizeد( e.Clicksج( e.Locationب( e.Buttonالف(

در کدام رویداد نمی توانیم از فشردن کلیدهای غیرچاپی مطلع شویم؟-6

KeyPressد( KeyCodeج( KeyUpب( KeyDownالف(

برای اینکه کد کلید زده شده به حرف متناظر آن تبدیل شود، کدام دستور صحیح است؟ -7

e.KeyChar (int)د( e.KeyCode (char)ج( e.KeyChar (char)ب( e.KeyCode (int)الف(

چه عملی انجام می دهد؟ IsDigitمتد -8

الف( تعیین می کند کاراکتر ورودی عدد است یا خیر ب( تعیین می کند کاراکتر حرف است یا خیر

ج( کاراکترهای غیرقابل چاپ را مشخص می کند د( کاراکترهای چاپ شدنی را مشخص می کند

چه چیزی را اطالع می دهد؟ KeyDownداد مربوط به روی eاز پارامتر KeyDataویژگی -9

ب( عدد صحیح بعنوان کد کلید زده شده الف( فقط نام کلید زده شده

د( نام کلید یا ترکیب کلیدی زده شده ج( کد اسکی کلید زده شده

کادرمتن شویم، کدام دستور صحیح است؟برای اینکه مانع از وارد شدن حروف به -10

;e.Supprersskeypress=trueب( ;e.keypress=trueالف(

;e.keypress=falseد( ;e.Suppresskeypress=falseج(

را وارد کنیم، در نهایت کدام گزینه در کادر متن aAعبارت textBox1با توجه به برنامه مقابل، چنانچه در کادر متن -11

textBox2 مشاهده خواهد شد؟

122د( 112ج( 1212ب( 12الف(

کدام گزینه صحیح می باشد؟ 100به منظور تولید عدد تصادفی صحیح در بازه صفر تا -12

د( گزینه های ب و ج ;Rnd.Next(101)ج( ;Rnd.Next(0, 100)ب( ;Rnd.Next(100)الف(

private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.A) textBox2.Text += "1"; } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 'A') textBox2.Text += "2"; }

Page 12: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

12

چنانچه بخواهیم با کلیک راست بر روی فرم، رنگ زمینه آن قرمز شود، کدام گزینه را باید به جای ؟ استفاده نمود؟-13

MouseButtons.Right == trueب( e.Button.Right == trueالف(

e.Button == Buttons.Rightد( e.Button == MouseButtons.Rightج(

بر روی فرم یک کنترل برچسب داریم. روی کنترل برچسب کلیک کرده و سپس اشاره گر ماوس را بر روی فرم انتقال -14

در کنترل برچسب مشاهده خواهد شد؟ )چپ به راست(داده و کلیک را رها می کنیم. با توجه به کدهای زیر، کدام گزینه

Dد( DBCج( DBب( DCالف(

را می زنیم. با توجه به کدهای زیر، در نهایت Deleteو سپس کلید Aبر روی فرم هیچ کنترلی وجود ندارد. ابتدا کلید -15

کدام گزینه در عنوان فرم مشاهده خواهد شد؟ )چپ به راست(

321321د( 231231ج( 23121ب( 32121الف(

کدام مقایسه صحیح است؟ -16

if (e.KeyValue == Keys.A)ب( if (e.KeyCode == 65)الف(

if (e.KeyChar == 65) د( if (e.KeyChar == Keys.A)ج(

را به درستی بررسی می کند؟ Altو Aکدام گزینه فشردن همزمان کلیدهای -17

if (e.KeyValue == 'A' && e.KeyCode == Keys.Alt)ب( if ((int)e.KeyCode == Keys.A && e.Alt == true)الف(

if (e.KeyCode == Keys.A && e.KeyValue == Keys.Alt) د( if (e.KeyValue == 'A' && e.Alt == true)ج(

را وارد کنیم، در نهایت کدام گزینه در کادر متن aAعبارت textBox1با توجه به برنامه مقابل، چنانچه در کادر متن -18

textBox2 مشاهده خواهد شد؟

122د( 112ج( 1212ب( 12الف(

می شود. Button1باعث اجرای رویداد کلیک شی ()Button1.PerformClickنکته( دستور

if ( ? ) this.BackColor = Color.Red;

private void label1_MouseDown(object sender, MouseEventArgs e) { label1.Text += "D"; } private void label1_MouseUp(object sender, MouseEventArgs e) { label1.Text += "C"; } private void Form1_MouseUp(object sender, MouseEventArgs e) { label1.Text += "B"; }

private void Form2_KeyPress(object sender, KeyPressEventArgs e) { this.Text += "3"; } private void Form2_KeyDown(object sender, KeyEventArgs e) { this.Text += "2"; } private void Form2_KeyUp(object sender, KeyEventArgs e) { this.Text += "1"; }

private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.A) textBox2.Text += "1"; } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 'A') textBox2.Text += "2"; }

Page 13: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

13

منوی زمینه( –) منوی نواری منو: سومفصل منوها باعث دسته بندی موضوعی و امکانات یک برنامه می شوند. برای دسترسی به گزینه های منو می توان از کلید های

( استفاده کرد.Shortcut Key( و یا کلیدهای میانبر )Hot Keyدسترسی)

. استفاده می شود MenuStripاز ابزار ی نواریبرای ساخت منو

هر گزینه ایی که ساخته می شود، در واقع یک شی است و دارای ویژگی، متد و

رویدادهای مختلف هستند.

( به خط افقی گفته می شود که با قرار گرفتن دریین گزینه های منو، آنها را دسته بندی می کند. اگر Separatorجدا کننده)

می توان یک Imageقرار گیرد، جدا کننده اضافه می شود. از طریق ویژگی –در قسمت نام گزینه منو) عنوان منو( عالمت

آیکن یا تصویری را به گزینه های منو اضافه کرد.

و یک حرف خاص Altدسترسی برای فعال کردن منو و گزینه های آن با استفاده از صفحه کلید هستند و با فشردن کلید های

قرار می گیرد. &آن عالمت textباعث باز شدن منو می شوند. برای ایجاد کلید دسترسی، قبل از کارکتر مورد نظر در ویژگی itxE E&xit

می توان کلیدهای دسترسی تعریف شده را مشاهده کرد. Altدر زمان اجرای برنامه با فشردن کلید

کلید دسترسی استفاده کرد. به عنواننکته( از حروف فارسی نیز می توان

Alt, Ctrlز گزینه ی منو را می توان تنظیم کرد)کلیدهای ترکیبی با استفاده ا shortcutkeysبرای ایجاد کلید میانبر، ویژگی

, Shift.در استفاده از کلیدهای میان بر بین حرف کوچک و بزرگ تفاوت وجود ندارد .)

نکته( اگر کلید میانبر انتخاب شده، با کلیدهای میانبر ویندوز مشترک باشد، اولویت با کلید میانبر برنامه است.

کنترل منو Insert Standard Itemsرای اینکار از گزینه منوها را طراحی کرد. بنکته( می توان طبق استاندارد های ویندوز

با انتخاب این گزینه منوها استاندارد استفاده کرد.

File,Edit,Tools,Help .به فرم اضافه می شود

Page 14: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

14

آن به یک رویداد )متد( پیوند زد تا با کلیک روی گزینه آن EHاست که می توان clickنکته( هر گزینه ی منو دارای رویداد

مثال( برنامه اجرا شود.private void redToolStripMenuItem_Click(object sender, EventArgs e) { menuStrip1.BackColor = Color.Red; redoToolStripMenuItem.Checked = true; }

برای ذخیره متن انتخاب شده Clipboardبه صورت زیر است. در این برنام از شی Copy , Cut ,Pasteبرنامه های مربوط به

و بازیابی آن استفاده شده است.private void cutToolStripMenuItem_Click(object sender, EventArgs e) { // CUT Clipboard.SetText(textBox1.SelectedText ); textBox1.SelectedText = ""; } private void copyToolStripMenuItem_Click(object sender, EventArgs e){ // COPY Clipboard.SetText(textBox1.SelectedText); } private void pasteToolStripMenuItem_Click(object sender, EventArgs e){ // PASTE textBox2.SelectedText = Clipboard.GetText(); }

:Context Menu منوی زمینه

استفاده ContextMenuStripبرای ایجاد این منوها از کنترل منوهایی هستند که با کلیک راست روی یک شی باز می شوند.

می کنیم.

ایجاد شد، باید شی مربوطه را به منوی زمینهنکته( هنگامی که گزینه های منوی زمینه

آن شی را برابر نام منوی زمینه ContextMenuStripمرتبط کرد. برای این کار ویژگی

قرار داد.

مثال(private void colorToolStripMenuItem_Click(object sender, EventArgs e){ colorDialog1.ShowDialog(); label1.ForeColor = colorDialog1.Color; } private void fontToolStripMenuItem_Click(object sender, EventArgs e){ fontDialog1.ShowDialog(); label1.Font = fontDialog1.Font; } private void backColorToolStripMenuItem_Click(object sender, EventArgs e){ colorDialog1.ShowDialog(); label1.BackColor = colorDialog1.Color; }

نکته( می توان یک منوی زمینه را برای چند شی تخصیص داد.

تمرین( برنامه ایی بنویسید که سه کادر تصویر را نسبت به هم به جلو و عقب منتقل کند.PictureBox1. BringToFront();

PictureBox1. SendToBack();

تست(

برای اینکه گزینه های موجود در منو را عالمتدار شود از کدام مورد استفاده می شود؟ -1

د( چنین امکانی در منو وجود ندارد Enabledج( Checkedب( Visibleالف(

برای قرار دادن آیکن تصویری برای گزینه های منو از چه خاصیتی استفاده می شود؟-2

Page 15: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

15

Background Pictureد( Imageج( Pictureب( Iconالف(

ید تغییر داده شود؟نام مربوط به منو یا گزینه های منو به منظور استفاده در کدنویسی در کدام خاصیت با -3

Menuد( Nameج( Titleب( Textالف(

آن دسته از کلیدهایی که برای فعال کردن منو با استفاده از صفحه کلید تعریف می شوند، چه می نامند؟-4

ج( کلیدهای منو د( کلیدهای اسکی الف( کلیدهای دسترسی ب( کلیدهای میانبر

کدام گزینه کنترلی است که با کلیک راست کردن بر روی یک شی ظاهر می شود؟ -5

RightClickMenuد( StandardMenuItemج( MenuStripب( ContextMenuالف(

ستاندارد نیست؟کدام گزینه جز گزینه های اصلی منوی ا -6

Helpد( Toolsج( Viewsب( Editالف(

در صورت انتخاب کلید میانر مشترک با ویندوز، کدام دستور اجرا می شود؟-7

الف( فقط دستور منو ب( ابتدا دستور منو و سپس دستور ویندوز

دستور ویندوز د( ابتدا دستور ویندوز و سپس دستور منوج( فقط

به منظور تعیین کلید دسترسی برای یک منو.......................... -8 قرار می گیرد @ب( در متن منو بعد از حرف مورد نظر عالمت قرار می گیرد @الف( در متن منو قبل از حرف مورد نظر عالمت

قرار می گیرد &د( در متن منو بعد از حرف مورد نظر عالمت قرار می گیرد &ج( در متن منو قبل از حرف مورد نظر عالمت

در زمان طراحی، اگر روی گزینه های منو دوبار کلیک کنیم.....-9

رویداد کلیک آن ظاهر می شود EHالف( اگر رویداد تعریف نشده باشد، خظا اعالم می شود ب( متد

ظاهر می شود Form_loadج( می توان نام منو را تغییر داد د( رویداد

برای اضافه کردن خط جداکننده به گزینه های منو، در هنگام طراحی منو در ویژگی ........... منو عالمت ................ قرار -10

می دهیم.

عالمت منها – Textد( & - Textعالمت منها ج( – Nameب( & - Nameالف(

صحیح یا غلط بودن جمالت زیر را مشخص کنید: -11

a. ..................................می توان به منوی استاندارد، گزینه جدید را اضافه کرد

b. زمینه گزینه منو، رنگ زمینه نوار منو نیز تغییر می کند..............................با تغییر رنگ

c. مقدار پیش فرض خصوصیتchecked گزینه های منوtrue .............................................است

d. اگر ویژگیRightToLeft برای کنترل منوTrue خودکار راست به چپ می تنظیم شود، گزینه های منو نیز به طور

شوند.............

e. ....................................برای ایجاد واکنش به هر رویداد الزاما باید متدی جداگانه تعریف نمود

f. می توان برای هر یک از گزینه های فرعی منو، ویژگیRightToLeft .....................را جداگانه تنظیم کرد

g. میانبر، برای فعال کردن منو و گزینه های آن با استفاده از صفحه کلید تعریف می شوند................کلیدهای

h. ......برای اجرای گزینه های منوی زمینه با استفاده از کلید میان بر، باید ابتدا با کلیک راست منوی زمینه را نمایش داد

Page 16: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

16

فصل پنجم: فایلباید آنها را در حافظه جانبی ذخیره کنیم. متغیرها چون در حافظه اصلی هستند با خروج از برای نگهداری دائمی داده ها،

برنامه، مقدارشان از بین می رود.

از بایت ها که بر روی حافظه جانبی تحت یک نام نگهداری می شوند را فایل می گویند. 1دنباله ای: تعریف فایل

فایلهای دودویی -2 متنی فایل -1از نظر محتوا، دو فایل وجود دارد:

قابل notepadمحتوای فایل متنی با ویرایشگری مانند .فایلی که محتوای آن کاراکترهای چاپ شدنی باشد، فایل متنی است

مشاهده است.

گویند.( می EOFدر انتهای فایل متنی، یک بایت به عنوان پایان فایل نشانه گذاری می شود که به آن کاراکتر پایان فایل)

در فایلهای دودویی اعداد و رشته ها به همان شکل که در حافظه قرار دارند، ذخیره می شوند. محتوای فایلهای دودویی را

مشاهده کرد. notepadنمی توان با ویرایشگر

ل با وجود دارد. فایاز نظر ترتیب ذخیره سازی اطالعات و یا نحوه دسترسی به اطالعات درون بک فایل، انواع مختلفی از فایلها

دسترسی ترتیبی، فایل با دسترسی مستقیم.

در کالس برای انجام عملیات روی فایلها تعریف شده است. FileStreamکالس System.IOدر فضای نام NET.در کتابخانه

نیز تعدادی متد استاتیک برای انجام عملیات روی فایل و فولدر و مسیر دسترسی به فایلها وجود File, Directory, Pathهای

دارد.

مثال( ساخت یک فولدر System.IO.Directory.CreateDirectory("d:\\test");

به صورت زیر است: Fileبرخی از متدهای کالس

1 Stream

Page 17: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

17

را به صورت فایل متنی ذخیره کرد و یک فایل متنی را بعد از باز شدن مثال( برنامه ایی بنویسید که محتوای یک کادرمتن

در کادر متن نمایش دهد؟private void button1_Click(object sender, EventArgs e) کردن ذخیره // } saveFileDialog1.Filter = "Text File|*.txt"; saveFileDialog1.ShowDialog(); string pth=saveFileDialog1.FileName; if (System.IO.File.Exists(pth)){ DialogResult d = MessageBox.Show("Do you want OverWrite?", "OverWrite", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if(d==DialogResult.Yes ) System.IO.File.WriteAllText(pth, textBox1.Text); } else System.IO.File.WriteAllText(pth, textBox1.Text); } private void button2_Click(object sender, EventArgs e) کردن باز // } openFileDialog1.Filter = "Text File|*.txt"; openFileDialog1.ShowDialog(); string pth = openFileDialog1.FileName; if (!System.IO.File.Exists(pth)){ MessageBox.Show("File Not Exist!!!"); return; } else { textBox1.Text = System.IO.File.ReadAllText(pth); } }

چیست؟ AppendAllTextو WriteAllTextسوال( تفاوت متد

: فرمی برای ذخیره اطالعات کاربری به صورت ایجاد طراحی و کدنویسی کنید:1 کار در کارگاه

private void button1_Click(object sender, EventArgs e) { textBox1.Text.Trim(); if(textBox1.TextLength==0 ){ MessageBox.Show("نام کاربر را وارد کنید"); return; // رویداد از خروج } if(textBox2.Text!=textBox3.Text){ MessageBox.Show("!کلمه عبور با تکرار آن یکسان نیست"); return; } string data=textBox1.Text +","+ textBox2.Text+"\r\n"; System.IO.File.AppendAllText("e:\\pass.txt",data ); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if(checkBox1.Checked ==true){ textBox2.PasswordChar = '\u0000'; textBox3.PasswordChar = (char)0;

Page 18: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

18

} else { textBox2.PasswordChar = '*'; textBox3.PasswordChar = '*'; } }

باعث می شود فضاهای خالی ابتدا و انتهای رشته حذف شود. trimمتد نکته(

طول رشته ی داخل کادر متن را بر می گرداند. textBox1.TextLengthنکته( متد

است. "r\n\"نکته( در انتهای هر خط فایلهای متنی دو کارکتر غیرچاپی

کادر متن با یک کاراکتر مقدار دهی شود، محتوای داخل کادرمتن با آن کاراکتر نمایش PasswordCharنکته( اگر ویژگی

داده می شود. اگر این ویژگی با کاراکتری با کد صفر مقدار دهی شود به حالت عادی برمی گردد.

دستور( چرا دستور زیر خطا است؟textBox2.PasswordChar = "*";

فضای نام بهتر است دستور زیر را باالی کالس بنویسیم:برای جلوگیری از تکرار نوشتن نکته(Using System.IO;

ایجاد bin\debug\نکته( در صورتی که مسیر ذخیره فایل مشخص نشود به طور پیش فرض فایل مورد نظر در فولدر پروژه

می شود.

ذخیره شده است. حجم این فایل چند بایت است؟ salamخط که در هر خط کلمه 4سوال( یک فایل متنی شامل

اگر فایل از قبل موجود نباشد چه اتفاقی می افتد؟ AppendAllTextسوال( در متد

از چه نوعی است؟ ReadAllTextسوال( خروجی متد

اجرا می کنیم، تعداد دفعاتی که برنامه اجرا شده است را نمایش دهد؟تمرین( برنامه ایی بنویسید که هر بار آن را

تمرین( برنامه ایی بنویسید که سایز فرم در هر بار اجرای برنامه برابر آخرین تغییرات توسط کاربر باشد؟

قابل تغییر باشد و هر Openتمرین( برنامه ایی بنویسید که تصویر پس زمینه ویندوز توسط یک دکمه و کادر محاوره ایی

بار برنامه اجرا می شود آخرین تصویر انتخاب شده برای پس زمینه، در پس زمینه فرم قرار گیرد.

قبل از رشته استفاده می کنیم. @نکته( برای اینکه در سی شارپ اعالم کنیم که در رشته کاراکتر کنترلی نداریم از عالمت System.IO.File.AppendAllText("e:\\pass.txt",data ); System.IO.File.AppendAllText(@"e:\pass.txt",data );

تست (

وارد کرده است. بعد از پایان برنامه آن مقدار............... TextBoxدر زمان اجرای برنامه، کاربر مقدار را در کنترل -1

الف( پاک می شود ب( داخل برنامه ذخیره می شود

ج(به صورت فایل مستقل ذخیره می شود د(در حافظه موقت نگه داری می شود.

کدام گزینه است؟ AppendAllTextوظیفه متد -2

اد فایل متنی و نوشتن متن درون فایل ب( اضافه کردن متنی به انتهای فایلالف( ایج

ج( باز نویسی متن بر روی فایل موجود د( اضافه کردن متنی به ابتدای فایل

کدام متد در صورت وجود فایل، روی آن بازنویسی انجام می دهد؟-3

Page 19: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

19

AppendAllTextد( WriteAllTextج( ReadAllTextب( Existsالف(

ت است؟ادرسکدام جمله درباره فایل متنی ن -4

الف( محتوای آن کاراکترهای چاپ شدنی است. ب( درپایان فایل یک بایت به عنوان کاراکتر پایان فایل قرار می گیرد.

قابل مشاهده است. NotePadج( محتوای فایل با ویرایشگر

د( متغیرهای برنامه به همان شکلی که در حافظه هستند، در آن ذخیره می شوند.

بایت وجود دارد. اگر یک کاراکتر قاصله به فایل اضافه شود)مطابق کد زیر( اندازه فایل چند 10با اندازه test.txtفایل -5

;System.IO.File.AppendAllText("test.txt" ," ")بایت می شود؟

12د( 11ج( 10الف( صفر ب(

و خروجی آن از چه نوعی است؟ Fileکالس ()Existsکاربرد متد -6

بولین -رشته ب( بررسی وجود فایل و دایرکتوری -الف( بررسی وجود فایل

رشته –بولین د( بررسی وجود فایل و دایرکتوری –ج( بررسی وجود فایل

از نظر دسترسی به اطالعات درون فایل، چه نوع فایلهایی وجود دارد؟ -7

ییدودو –مستقیم د( مستقیم -متنی ج( ترتیبی -دودویی ب( ترتیبی –الف( متنی

کدام متد فایل جدید ایجاد نمی کند؟-8

د( الف و ج AppendAllTextج( WriteAllTextب( ReadAllTextالف(

کدام جمله درباره فایل دودویی صحیح است؟-9 ذخیره می شود EOFب( درپایان فایل دودویی، کاراکتر الف( فایل های تصویری، از نوع دودیی هستند

د( داده های موجود در متغیرهای برنامه به رشته تبدیل و در فایل ذخیره می شود ج(توسط واژه پردازها به درستی قابل مشاهده است

چیست؟ Streamتعریف -10

ب( داده های موجود در متغیرهای یک برنامه الف( فایل با محتوای کاراکترهای چاپ شدنی

ج( دنباله ای از بایت ها درون حافظه جانبی تحت یک نام د( فایلهای درون حافظه جانبی برای دسترسی بعدی

دستورات زیر چیست؟ حاصل اجرای -11

الف(اگر فایل موجود باشد، آن را حذف می کند.

ب( اگر فایل موجود باشد، خطای زمان اجرا اعالم می شود

ج( اگر فایل موجود نباشد، خطای زمان اجرا اعالم می شود د( اگر فایل موجود نباشد، یک فایل خالی ایجاد می شود

موجود نباشد، حاصل اجرای متد زیر چیست؟ :Dدر ریشه درایو test.txtاگر فایل -12

System.IO.File.ReadAllText("D:\\Test.txt"); الف( فایل ایجاد می شود ب( درخواست نام فایل جدید می شود

م می شودج( خطای زمان ترجمه اعالم می شود د( خطای زمان اجرا اعال

کدام عمل را انجام نمی دهد؟ WriteAllTextمتد -13

الف( باز کردن فایل به منظور نوشتن اطالعات ب( بررسی وجود فایل روی حافظه جانبی

ج( نوشتن داده های و اطالعات درون فایل باز شده د( بستن فایل پس از اتمام کار

ی کار با فایلها باید از فضای نام............................................ استفاده کنیم.برا-14

if (File.Exists("d:\\test.txt")) ; else File.WriteAllText("d:\\test.txt", "");

Page 20: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

20

System.Dataد( System.IOج( Systemب( System.Textالف(

تعریف نشده است؟ System.IOکدام کالس زیر در فضای نامی -15

Mathد( Pathج( Directoryب( Fileالف(

محتوای این فایل چیست؟ Button1وجود ندارد. بعد از سه بار کلیک روی test.txtفایل -16

AAAالف(

BBBب(

ABBج(

BAAد(

باشد، با فشردن آن کدام اتفاق رخ می دهد؟ ALT+F4اگر کلید میانبر یکی از گزینه های منو پروژه، کلید -17

الف( فرم بسته می شود ب( ویژوال استودیو بسته می شود

ج( متد کلیک گزینه منو اجرا می شود د( متد کلیک گزینه منو اجرا شده و فرم بسته می شود.

فایلهایی می توان استفاده کرد؟برای آیکن گزینه از چه نوع -18

bmpو jpgب( فقط فرمت های تصویری icoالف( فقط فایلهای

icoو bmpد( فقط فرمت های gif, bmp,png,jpg,icoج( فایلهای

م گزینه برای تغییر رنگ نوشته گزینه درست کدا Text=Redو Name=RedColorبرای گزینه منو، با ویژگی های -19

است؟

;Red.ForeColor=Color.Yellowب( ;Red.BackColor=Color.Yellowالف(

;Red.ForeColor=Color.Yellowد( ;RedColor.BackColor=Color.Yellowج(

است؟ KeyPressدر رویداد BackSpaceکدام شرط تشخیص کلید -20

e.KeyChar==(char)Keys.Backب( 'e.KeyChar=='\rالف(

e.KeyCode=Keys.BackSpaceد( 'e.KeyCode=='\bج(

فشرده Shift +Aروی فرمی یک کنترل برچسب وجود دارد. با توجه به رویداد زیر، اگر هنگام اجرای برنامه کلیدهای -21

خاموش است( Caps Lockشود، چه کاراکتری نمایش داده خواهد شد؟) دکمه

a الف(

Shift aب(

Aج(

Shift Aد(

تولید عدد تصادفی در محدوده ی ........................ است. rnd.Next(0,20)-10حاصل اجرای دستور -22

10تا 10-د( 20تا 10-ج( 20ب( صفر تا 9تا 10-الف(

؟صحیح است Randomکالس Nextکدام مورد برای متد -23

الف( یک عدد صحیح تصادفی تولید می کند ب( یک عدد اعشاری تصادفی تولید می کند

ج( یک عدد اعشاری مثبت و کوچکتر از یک تولید می کند د( نمی توان بدون ورودی آن را فراخوانی کرد

private void button1_Click(object sender, EventArgs e) { if (File.Exists("d:\\test.txt") == false) File.WriteAllText("d:\\test.txt", "A"); else File.AppendAllText("d:\\test.txt", "B"); }

private void Form1_KeyPress(object sender, KeyPressEventArgs e) { label1.Text = e.KeyChar.ToString(); }

Page 21: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

21

کنترل کادر متن، دستور زیر نوشته شده باشد Keydownو کنترل کادر متن وجود دارد. اگر در رویداد cnt=0متغیر -24

چند است؟ cntوارد شود. مقدار متغیر C_sharp3و در این کنترل عبارت

if (char.IsLetter((char)e.KeyCode)) cnt++; 6د( 7ج( 5ب( 2الف(

سواالت درست و نادرست:

با تغییر رنگ زمینه گزینه منو، رنگ زمینه نوار منو نیز تغییر می کند.......................................... -1

است............................................ trueگزینه های منو Checkedمقدار پیش فرض خصوصیت -2

استاندارد، گزینه جدیدی را اضافه کرد..................................................می توان به منوی -3

تنظیم شود، گزینه های منو نیز به طور خودکار راست به چپ می Trueبرای کنترل منو RightToLeftاگر ویژگی -4

شوند...............................

برای تعیین دکمه های کادر پیام بکار می رود.......................................... Keysداده شمارشی -5

اگر اشاره گر ماوس روی فرم به سمت چپ حرکت کند، طول محل اشاره گر ماوس کمتر می شود.........................-6

.............................می توان در کادر پیام بیش از سه دکمه قرار داد..................-7

:تمرین عملی

به صورت زیر باشد 1برنامه ایی بنویسید که الف( فرم -1

Pass.txtو User.txtو رمز کاربران در دو فایل متنی نام کاربران

ذخیره می شوند. در صورتی که نام کاربری وپسورد صحیح است

باز می شود. انتخاب گزینه نمایش 2فرم OKبا کلیک بر روی دکمه

رمز باعث، نمایش رمز در کادر متن می شود. با کلیک بر روی دکمه

Exit با دریافت تاییده از برنامه خارج می

شویم.

به صورت روبرو طراحی شود 2فرم ب(

باشد امکان Adminاگر کاربرنرم افزار

را دارد وگرنه Manageدسترسی به منوی

غیرفعال می شود.

در بانک اطالعاتی جدولی به نامdic

ایجاد کنید تا هر Faو Enبا دوفیلد

کلمه انگلیسی به همراه ترجمه فارسی آن قرار گیرد.

آن کلمه ترجمه شود. "ترجمه"با انتخاب گزینه های فرم و زدن دکمه

باشد. امکان تایپ اعداد در هر دو کادرمتن وجود نداشته

(مدیر نرم افزارAdmin با انتخاب گزینه )Dictionary باز می شود و با انتخاب 3فرمUsers باز می شود. 4فرم

Page 22: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

22

که به صورت روبرو طراحی می شود: 3ج( در فرم

امکان مشاهده همه کلمات دیکشنری و حذف و درج

وجود دارد. dicدر جدول کلمات جدید

امکان مشاهده همه کاربران و رمز آنها 4د( در فرم

می تواند کاربر جدید Adminوجود دارد و کاربر

و User.txtتعریف کند و یا کاربری را از فایلهای

Pass.txt حذف کند) امکان حذفAdmin وجود

نداشته باشد(

رنگ فرم قرمز شود. "ق"رنگ فرم زرد و با فشار دادن حرف فارسی "ز" حرف فارسیدر یک فرم، کدی بنویسید که با فشار دادن الف( -2

فرم بسته شود. shift+F2همچنین با زدن کلیدهای

ظاهر شود مانند روبرو بر روی فرم، منویی کلیک راستب( در این فرم کدی بنویسید که با

باز می شود و با انتخاب یک تصویر، openکادر محاوره ای Back imageو با انتخاب

آن تصویر پس زمینه فرم قرار گیرد.

باز می شود و با انتخاب یک رنگ ، پس زمینه فرم رنگش تغییر می کند. Colorکادر محاوره ای Back Colorبا انتخاب

یک کالس برای چراغ راهنمایی رانندگی به صورت زیر ایجاد کنید: این کالس،-3

سه فیلد خصوصی به نام هایRED, GREEN, YELLOW از جنسBoolean .داشته باشد

سه متد عمومی به نام هایOn_Red , On_Green , On_Yellow (بنویسید که هر کدام از این متدها چراغ مربوطه را روشنtrue )

( می کنند.falseو دو چراغ دیگر را خاموش)

سه ویژگی به نام هایSt_Red , St_Green , St_Yellow قابلیت برگرداندن مقدار سه فیلد فقطبنویسید کهRED, GREEN,

YELLOW .را داشته باشند

از کالس ایجاد شده یک شی ایجاد کنید و چراغ سبز، زرد و قرمز آن را تغییر وضعیت دهید.

با فیلدهای مشخص شده در تصویر روبرو باشد و فرم روبرو را ایجاد کنید bookالف( یک بانک اطالعاتی ایجاد کنید که شامل جدولی به نام -3

از آن رنگ کادر متن دوباره سفید می شود. خروج ماوسبه هر کدام از کادرهای متن رنگ آن کادر متن زرد می شود و با ورود ماوسب( با

وجود ندارد. غیرعددپ( در کادر متن مربوط به قیمت کتاب، کاربر فقط می تواند عدد تایپ کند و امکان تایپ

، از بانک اطالعاتی حذف می شود. ه از کاربریپس از دریافت تاییدکتاب انتخاب شده در جدول موجود در فرم، "حذف"اب دکمه ت( با انتخ

Page 23: Jozve c#3 mohamady

محمدی مهدی

3جزوه برنامه سازی

23

و زدن دکمه "بانک اطالعاتی"ث( با انتخاب گزینه

قبال در بانک در کادر متن اگر کد کتاب وارد شده "ذخیره"

ود وگرنه کتاب جدیدصادر می شاطالعاتی باشد، پیغام خطا

اضافه می شود. bookوارد شده به جدول

کتاب "ذخیره"و زدن دکمه "فایل "ج( با انتخاب گزینه

بین کد رهگیری تصادفیجدید وارد شده به همراه یک

ذخیره می شود. book.txtدر فایل 9999تا 1000

باز می شود و در آن فرم 2فرم Nextد( باز زدن دکمه

و یک کادر متن قرار دهید. کاربر "show"یک دکمه به نام

را Book.txtمحتوای فایل showبا کلیک بر روی دکمه

نمایش می دهد و در صورتی که فایل موجود نباشد پیغام خطا صادر می شود. در کادر متن ،صورت وجوددر