نمایش نتایج 1 تا 13 از 13

نام تاپیک: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

  1. #1

    عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)




    سلام دوستان

    همه ی دوستان میدونند که بعداز RightToLeft کردن Formها و یا کنترل ها .. کلیدهای {LEFT / RIGHT} .. برعکس عمل میکنند .. یعنی با زدن کلید {LEFT} مکان نما به راست .. وبا زدن کلید {RIGHT} مکان نما به چپ حرکت میکنه

  2. #2
    کاربر دائمی آواتار amir200h
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    بروجرد->تهران->قم
    سن
    33
    پست
    782

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    خوب میتونی وقتی کلید چپ رو زد کلید سمت راستو صدا کنی و برعکس

  3. #3

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    نقل قول نوشته شده توسط amir200h مشاهده تاپیک
    خوب میتونی وقتی کلید چپ رو زد کلید سمت راستو صدا کنی و برعکس
    چطوری؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟

  4. #4
    کاربر دائمی آواتار amir200h
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    بروجرد->تهران->قم
    سن
    33
    پست
    782

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    تو رویداد KeyPress کنترلتون اینو بنویس
    if (e.KeyChar == (char)Keys.Left)
    {
    e.Handled = true;
    SendKeys.Send("{Right}");
    }

  5. #5

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    نقل قول نوشته شده توسط amir200h مشاهده تاپیک
    تو رویداد KeyPress کنترلتون اینو بنویس
    if (e.KeyChar == (char)Keys.Left)
    {
    e.Handled = true;
    SendKeys.Send("{Right}");
    }
    کار نمیکنه اصلا وقتی کلید left و یا right میزنیم بدون اجرای دستورات داخل KeyPress ، بCursor جا به جا میشه

  6. #6

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

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

  7. #7

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    اینجا اقای the king پاسخ دادن ولی من تو vb هم تست کردم نشد

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    ایران
    سن
    39
    پست
    467

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    بزارید تو رویداد KeyDown
    به این صورت

    private bool flag;
    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {

    if (flag)
    {
    flag = false;
    return;
    }
    if (e.KeyCode == Keys.Left)
    {
    e.Handled = true;
    SendKeys.Send("{Right}");
    flag = true;
    }
    else if (e.KeyCode == Keys.Right)
    {
    e.Handled = true;
    SendKeys.Send("{Left}");
    flag = true;
    }
    }

    اون متغییر فلگ رو باید عمومی تعریف کنید
    البته به یاد داشته باشید که کار اصولی نمی تونه باشه
    ضمنا یه چک هم بکنید که اگه RTL بود این عمل انجام بشه

  9. #9

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    اقای the king گفتند که این روش اصولی نیست
    لطفا یه نفر روشی را که اقای the king گفتند را با سی شارپ توضیح بدن

  10. #10
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    ایران
    سن
    39
    پست
    467

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    نقل قول نوشته شده توسط negar.rafie مشاهده تاپیک
    اقای the king گفتند که این روش اصولی نیست
    لطفا یه نفر روشی را که اقای the king گفتند را با سی شارپ توضیح بدن
    اینم کد ایشون در سی شارپ
    ولی برا خودمم کار نکرد

    protected override bool ProcessKeyMessage(ref Message m)
    {
    if (RightToLeft != RightToLeft.Yes) return base.ProcessKeyMessage(ref m);
    switch ((Keys)m.WParam)
    {
    case Keys.Left:
    m.WParam = (IntPtr)Keys.Right;
    break;
    case Keys.Right:
    m.WParam = (IntPtr)Keys.Left;
    break;
    }
    return base.ProcessKeyMessage(ref m);
    }

    فکر کنم یه تغییر کوچولو لازم باشه
    آخرین ویرایش به وسیله hojjatshariffam : شنبه 12 مرداد 1392 در 19:46 عصر

  11. #11
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    ایران
    سن
    39
    پست
    467

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    نقل قول نوشته شده توسط hojjatshariffam مشاهده تاپیک
    فکر کنم یه تغییر کوچولو لازم باشه
    این تغییر کوچولو این بود
    یه کلاس بسازید که از تکست باکس ارث ببره
    و کد رو تو اون بنویسید .

    internal class Class3 : TextBox
    {
    protected override bool ProcessKeyMessage(ref Message m)
    {
    if (RightToLeft != RightToLeft.Yes) return base.ProcessKeyMessage(ref m);
    switch ((Keys)m.WParam)
    {
    case Keys.Left:
    m.WParam = (IntPtr)Keys.Right;
    m.LParam = (IntPtr)Keys.Right;
    break;
    case Keys.Right:
    m.WParam = (IntPtr)Keys.Left;
    break;
    }
    return base.ProcessKeyMessage(ref m);
    }
    }

    تو هر فرمی که خواستین اونو از تولباکس بندازین توش تا این کارو براتون بکنه
    آخرین ویرایش به وسیله hojjatshariffam : شنبه 12 مرداد 1392 در 19:47 عصر دلیل: تصحیح کد

  12. #12
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    ایران
    سن
    39
    پست
    467

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    نقل قول نوشته شده توسط negar.rafie مشاهده تاپیک
    اقای the king گفتند که این روش اصولی نیست
    لطفا یه نفر روشی را که اقای the king گفتند را با سی شارپ توضیح بدن
    یعنی به دردتون نخورد؟ یا نمی تونین ازش استفاده کنید؟
    اگه متوجه نشدین بگین تا بیشتر توضیح بدم

  13. #13
    مدیر بخش آواتار مهرداد صفا
    تاریخ عضویت
    تیر 1391
    محل زندگی
    select Country,City From World where Country.Name=IRAN and City.Contains(حضرت معصومه(ع))
    پست
    1,499

    نقل قول: عویض عملکرد کلیدهای Left و Right (حرکت Cursor یا همون مکان نما)

    باسلام.
    بهترین راه این است که به محض دریافت پیغام کیبورد توسط فرم، و قبل از اینکه این پیغام توسط فرم پردازش شده و رویدادهای متناظر فایر شوند، کلیدهای چپ و راست با یکدیگر جا به جا شوند.
    برای این کار می توان متود wndproc مربوط به فرم را بازنویسی کرد و قبل از اینکه پیغام به کلاس فرم پاس داده شود باید مقدار WParam چک شود. در صورتی که این مقدار برابر با کلید چپ بود آن را به Keys.Right تغییر داد و بر عکس.
    در نمونه کد زیر این عمل انجام شده، البته فقط در مورد رویداد KeyDown. بقیه رویدادهای کیبورد هم به همین ترتیب خواهد بود:

    //in the name of god
    //صل الله علی محمد و آله
    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 WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
    const Int32 WM_KEYDOWN = 0x0100;
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }


    protected override void WndProc(ref Message m)
    {
    if (m.Msg == WM_KEYDOWN)
    {
    if(((Keys)m.WParam)==Keys.Right)
    m.WParam=(IntPtr)Keys.Left;
    else if (((Keys)m.WParam)==Keys.Left)
    m.WParam=(IntPtr)Keys.Right;

    }





    base.WndProc(ref m);
    }


    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
    if((e.KeyCode==Keys.Left )||(e.KeyCode==Keys.Right))
    MessageBox.Show(e.KeyCode.ToString());
    }


    }
    }
    آخرین ویرایش به وسیله مهرداد صفا : یک شنبه 13 مرداد 1392 در 16:21 عصر
    چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست
    **********
    اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ

تاپیک های مشابه

  1. پاسخ: 3
    آخرین پست: شنبه 12 مرداد 1392, 17:50 عصر
  2. left to Right
    نوشته شده توسط alex_kh58 در بخش VB.NET
    پاسخ: 5
    آخرین پست: دوشنبه 08 آذر 1389, 22:52 عصر
  3. INNER JOIN , LEFT JOIN , RIGHT JOIN
    نوشته شده توسط Helen_Farhani در بخش سایر پایگاه‌های داده
    پاسخ: 8
    آخرین پست: یک شنبه 16 تیر 1387, 19:30 عصر
  4. player with Left and Right Control
    نوشته شده توسط seyed_farid در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: یک شنبه 24 مهر 1384, 20:42 عصر
  5. توابع Left و Right کارنمی کنن
    نوشته شده توسط vbapr2005 در بخش VB.NET
    پاسخ: 8
    آخرین پست: دوشنبه 21 شهریور 1384, 12:20 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •