View Full Version : سوال: اجرای دکمه ترکیبی در فرم بدون توجه به فوکوس
ali190
جمعه 04 فروردین 1391, 14:07 عصر
باسلام و عرض خسته نباشید
فرض کنید من یه فرم دارم با آبجکت های زیر:
3 تا تکست باکس
2 تا دکمه
3 کمبوباکس
و...
حالا میخوام بدون توجه به اینکه فوکوس بر روی چه کنرلی باشه ، وقتی دکمه Ctrl+S رو زدم عملیات خاصی (مثلاً ننمایش یه پیغام به کاربر) انجام بشه
ممنون میشم راهنماییم کنید
یاعلی
omid_csh
جمعه 04 فروردین 1391, 17:58 عصر
سلام
به اینجا مراجعه کنین http://www.codeproject.com/Articles/7294/Processing-Global-Mouse-and-Keyboard-Hooks-in-C
asadegha
جمعه 04 فروردین 1391, 19:31 عصر
خودت اذیت نکن. خاصیت KeyPreview فرمت رو True کن. حالا هر دکمه ایی بزنی و Focus هرجایی باشه، توسط رویداد های key... فرم قابل تشخیصه.
میگی نه؟؟؟؟؟؟ امتحان کن.
lvlaziar
جمعه 04 فروردین 1391, 20:03 عصر
یه راه ساده ترم استفاده از رویداد keydown فرم!( خودم واسه اولین کیلاگری ک نوشتم همین کدو استفاده کردم!)
اینم از کدش!
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.KeyDown += new KeyEventHandler(Form1_KeyDown);//tarif roydad
}
void Form1_KeyDown(object sender, KeyEventArgs e)//code nevisish
{
if (e.KeyCode == System.Windows.Forms.Keys.S & e.Control == true)//taein shortcut
{
MessageBox.Show("Shoma CTRL+S ra feshar dadeh eiid :-(");//amaliat
}
}
}
}
فک کنم توضیحاتیم ک نوشتم مشخصه! ولی اگه سوالی بود مطرح کنید! : :قلب:
واسه سلامتی یه عزیز اگه صلوات بفرستید ممنون میشم :لبخندساده:
NiMble_m
جمعه 04 فروردین 1391, 20:31 عصر
حرف شما درسته ولی باید حتما قبلش خاصیت keyPreview فرم رو true کنی تا برنامه درست کار کنه
این کار کنید دیگه هرجا که فوکوس باشید مهم نیست و پیغام نمایش داده میشه
یا علی
asadegha
شنبه 05 فروردین 1391, 12:48 عصر
یه راه ساده ترم استفاده از رویداد keydown فرم!( خودم واسه اولین کیلاگری ک نوشتم همین کدو استفاده کردم!)
اینم از کدش!
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.KeyDown += new KeyEventHandler(Form1_KeyDown);//tarif roydad
}
void Form1_KeyDown(object sender, KeyEventArgs e)//code nevisish
{
if (e.KeyCode == System.Windows.Forms.Keys.S & e.Control == true)//taein shortcut
{
MessageBox.Show("Shoma CTRL+S ra feshar dadeh eiid :-(");//amaliat
}
}
}
}
فک کنم توضیحاتیم ک نوشتم مشخصه! ولی اگه سوالی بود مطرح کنید! : :قلب:
واسه سلامتی یه عزیز اگه صلوات بفرستید ممنون میشم :لبخندساده:
keypreviw باید true باشه.
this.KeyDown += new KeyEventHandler(Form1_KeyDown);//tarif roydad
این رو واسه کلاس کارت نوشتی دیگه؟؟؟:چشمک:
if (e.KeyCode == System.Windows.Forms.Keys.S & e.Control == true)//taein shortcut
==true نمی نوشتی هم جواب میداد.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.