جابجا کردن Label با صفحه کلید در سی شارپ

minoo_90

New Member
من میخوام یه فرم داخل c# درست کنم بعد یه لیبل روش بزارم که با دکمه های صفحه کلید بالا و پایین و چپ و راست بره.
چپ و راست و درست کردم ولی برای بالا و پایین مشکل دارم . اگه کسی بتونه راهنمایی کنه ممنون می شم .
 

فقق

Banned
سلام

فکر کنم نمی شه ساخت چون لیبل Keyperss ندارد اصلا خانواده Key را ندارد ولی اگه کسی در این مورد می تونه کمک کنه منم ممنون می شم .​
 

the_king

مدیرکل انجمن
من میخوام یه فرم داخل c# درست کنم بعد یه لیبل روش بزارم که با دکمه های صفحه کلید بالا و پایین و چپ و راست بره.
چپ و راست و درست کردم ولی برای بالا و پایین مشکل دارم . اگه کسی بتونه راهنمایی کنه ممنون می شم .

صفحه کلید فقط روی کنترل ای که Focus را در اختیار دارد و فعال است عمل می کند، هیچکدام از کنترل هایی که Focus
نمی گیرند (Focusable نیستند) رو نمیشه مستقیما با صفحه کلید کنترل کرد، مثلا Label ها و PictureBox ها Focus
نمی گیرند.

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

فرضا label1 روی فرم قرار دارد. باید در فرم مشخصه KeyPreview را روی True تنظیم کنید تا همواره رخداد KeyDown
در فرم فراخوانی شود، در لیست رخداد های Form برای رخداد Load کد های زیر را بنویسید :
کد:
[COLOR="Gray"]        private void Form1_Load(object sender, EventArgs e)
        {[/COLOR]
            this.KeyPreview = true;
            this.KeyDown += new KeyEventHandler(MoveLabel);
[COLOR="Gray"]        }[/COLOR]

        private void MoveLabel(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.Left:
                    label1.Left -= 5;
                    e.Handled = true;
                    break;
                case Keys.Right:
                    label1.Left += 5;
                    e.Handled = true;
                    break;
                case Keys.Up:
                    label1.Top -= 5;
                    e.Handled = true;
                    break;
                case Keys.Down:
                    label1.Top += 5;
                    e.Handled = true;
                    break;
            }
        }
 

turtel

Member
تفسیر کد

سلام ملیکم احوال همگی
this.KeyPreview = true;
this.KeyDown += new(MoveLabel);ما در این خط خوب یک رویداد را به عمل می آوریم

خوب این دو کد
که معلوم است به چه معنی است

private void MoveLabel(object sender, KeyEventArgs e)این کد برای تعریف رویداد است {
ما باید به
KeyEventArgs وKeyEventHandler توجه کنیم
e.KeyCode) این قطعه کد .کد مربوط به دکمه را صورت می ده
K
eys این یک اینیوم است که به صورت ترتیبی است که در اینجا تمام دکمه های مربوطه را برای انجام کار کاربر فراهم می کند
یک چیزی که در اینجا مهم است علامت منفی و مثبت است که به صورت بردار است یعنی
x-و x+ که left x- است
label1.Left -= 5
خانوم مینو این کد را برای شما تفسیر کردم امیدکه کاریی باشد ;
 

جدیدترین ارسال ها

بالا