.NET- এ কীডাউন এবং কী প্রেসের মধ্যে পার্থক্য কী?


185

এর মধ্যে KeyDownএবং KeyPressইভেন্টগুলির মধ্যে পার্থক্য কী .net?

উত্তর:


308

এ নিয়ে আপাতদৃষ্টিতে অনেক ভুল বোঝাবুঝি হয়!

KeyDownএবং এর মধ্যে একমাত্র ব্যবহারিক পার্থক্য KeyPressহ'ল এটি কী-চাপ KeyPressথেকে প্রাপ্ত চরিত্রটিকে পুনরায় সম্পর্কযুক্ত করে এবং কেবল সেখানে উপস্থিত থাকলে তাকে ডাকা হয়।

অন্য কথায়, আপনি যদি Aআপনার কীবোর্ডে টিপেন, আপনি ইভেন্টগুলির এই ক্রমটি পাবেন:

  1. কীডাউন: কীকোড = কীগুলি Aএ, কীডেটা = কীগুলি Aএ, সংশোধকগুলি = কীগুলি N
  2. কীপ্রেস: কীচর = 'এ'
  3. কীআপ: কীকোড = কী.এ.

তবে আপনি Shift+ টিপলে A, আপনি পাবেন:

  1. কীডাউন: কীকোড = কীগুলি h শিফটকি, কীডাটা = কী।
  2. কীডাউন: কীকোড = কীগুলি Aএ, কীডেটা = কীগুলি Aএ | কী। শিফট, পরিবর্তনকারী = কীগুলি ys শিফট
  3. কীপ্রেস: কীচর = 'এ'
  4. কীআপ: কীকোড = কী.এ.
  5. কীআপ: কীকোড = কীগুলি h শিফটকি

আপনি যদি কিছুক্ষণ ধরে কীগুলি ধরে রাখেন তবে আপনি এমন কিছু পাবেন:

  1. কীডাউন: কীকোড = কীগুলি h শিফটকি, কীডাটা = কী।
  2. কীডাউন: কীকোড = কীগুলি h শিফটকি, কীডাটা = কী।
  3. কীডাউন: কীকোড = কীগুলি h শিফটকি, কীডাটা = কী।
  4. কীডাউন: কীকোড = কীগুলি h শিফটকি, কীডাটা = কী।
  5. কীডাউন: কীকোড = কীগুলি h শিফটকি, কীডাটা = কী।
  6. কীডাউন: কীকোড = কীগুলি Aএ, কীডেটা = কীগুলি Aএ | কী। শিফট, পরিবর্তনকারী = কীগুলি ys শিফট
  7. কীপ্রেস: কীচর = 'এ'
  8. কীডাউন: কীকোড = কীগুলি Aএ, কীডেটা = কীগুলি Aএ | কী। শিফট, পরিবর্তনকারী = কীগুলি ys শিফট
  9. কীপ্রেস: কীচর = 'এ'
  10. কীডাউন: কীকোড = কীগুলি Aএ, কীডেটা = কীগুলি Aএ | কী। শিফট, পরিবর্তনকারী = কীগুলি ys শিফট
  11. কীপ্রেস: কীচর = 'এ'
  12. কীডাউন: কীকোড = কীগুলি Aএ, কীডেটা = কীগুলি Aএ | কী। শিফট, পরিবর্তনকারী = কীগুলি ys শিফট
  13. কীপ্রেস: কীচর = 'এ'
  14. কীডাউন: কীকোড = কীগুলি Aএ, কীডেটা = কীগুলি Aএ | কী। শিফট, পরিবর্তনকারী = কীগুলি ys শিফট
  15. কীপ্রেস: কীচর = 'এ'
  16. কীআপ: কীকোড = কী.এ.
  17. কীআপ: কীকোড = কীগুলি h শিফটকি

লক্ষ করুন যে, KeyPressঘটে মধ্যে KeyDown এবং KeyUp, না পরে KeyUp, যেমন অন্যান্য উত্তরের অনেক বলেছেন, যে KeyPressবলা হয় যখন একটি অক্ষর উত্পন্ন করা হয় না, এবং যে KeyDownঅন্য উত্তরের অনেক বিপরীত যখন কী চেপে অনুষ্ঠিত হয় পুনরাবৃত্তি, এছাড়াও হয় ।

কি যে করি উদাহরণ না সরাসরি কলের KeyPress:

  • Shift, Ctrl,Alt
  • F1 মাধ্যম F12
  • তীর চিহ্ন

কি যে উদাহরণ কি কল মধ্যে ফলাফলের KeyPress:

  • Aমাধ্যমে Z, 0মাধ্যমে 9, ইত্যাদি
  • Spacebar
  • Tab (কীচর = '' টি ', এএসসিআইআই 9)
  • Enter (কীচর = '' আর ', এএসসিআইআই 13)
  • Esc (কীচর = '\ x1 বি', এএসসিআইআই 27)
  • Backspace (কীচর = '\ বি', এএসসিআইআই 8)

অদ্ভুত জন্য, KeyDownমোটামুটিভাবে করার আশ্বাস যোগায় WM_KEYDOWN, KeyPressকরতে WM_CHAR, এবং KeyUpকরতে WM_KEYUP। কী পুনরাবৃত্তির সংখ্যার চেয়ে কম বলা WM_KEYDOWN যেতে পারে, তবে এটি একটি পুনরাবৃত্তি গণনা প্রেরণ করে, যা আইআইআরসি, উইনফর্মগুলি পুনরাবৃত্তিতে ঠিক একটি কীডাউন তৈরি করতে ব্যবহার করে।


2
চমত্কার ব্যাখ্যা, THX, যদিও একটি সতর্কতা অবলম্বন, Chrome এ কীপ্রেস ট্রিগার করে না (অন্যদের সম্পর্কে নিশ্চিত নয়)।
— বার্নি

3
@ বার্নাবাসজাবল্যাক্স: ক্রোম। নেট চালায়?
— পি বাবা

@ প্যাডি আপগুলি, আমি উপেক্ষা করেছি, আমি ভেবেছিলাম এটি জাভাস্ক্রিপ্ট ছিল: ডি তবে কিছুটা অদ্ভুত শৈলীর সাথে: পি তবুও, এটি বিধিগুলি বেশ অনুরূপ বলে মনে হচ্ছে: ডিডি ... মজাদারভাবে এই উত্তর আমাকে যেহেতু অনেকটা সাহায্য করেছিল .. । চিয়ার্স :)
— বার্নি

@ পিড্ডি আমি জানি যে কমপক্ষে ট্যাব ডিফল্টরূপে কীডাউন বা কীআপ ফায়ার করে না
— সাইকোডাটা

@ সাইকোডাটা: এটি কারণ ট্যাব কী ফোকাস পরিবর্তন করে, তাই এটি ইনপুট হিসাবে প্রক্রিয়াজাত হয় না। আপনি যদি ওভাররাইড করে থাকেন ProcessDialogKeyএবং keyDataথাকে Keys.Tabবা মিথ্যা ফিরে আসেন Keys.Shift | Keys.Tab, তবে আপনি (চালু) কী (ডাউন | টিপুন | টিপুন) এর ট্যাব কী দেখতে পাবেন।
— পি ড্যাডি

73

কীপ্রেস ইভেন্টটি ননচার্যাক্টর কী দ্বারা উত্থাপিত হয়নি; যাইহোক, ননচার্যাক্ট কীগুলি কীডাউন এবং কীআপ ইভেন্ট উত্থাপন করে।

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress.aspx


17
অন্যান্য উত্তরগুলির বেশিরভাগই একরকম বা অন্যভাবে ভুল, তবে এটি উত্তরটি বাস্তবের নিকটে আসে। কীপ্রেস কেবল অক্ষর কীগুলির জন্য উত্থাপিত হয় এবং এটি কীবোর্ড টাইপিং বিলম্ব / পুনরাবৃত্তিগুলির সেটিং মান্য করে। ইভেন্টের আসল ক্রমটি হ'ল: 1) কীডাউন 2) এক বা একাধিকবার কীপ্রেস কী (টিপস সিস্টেমের সেটিংসের উপর নির্ভর করে এবং কীটি কতক্ষণ ধরে থাকে) 3) কী ইউপি
— ফিলিপ

আমার কাছে এটি করার মতো প্রতিনিধি নেই, তবে কেউ কি উইকির জাল বাঁধতে এবং উপরের মন্তব্য এবং গৃহীত উত্তরের সামগ্রীটি একত্রিত করতে পারে?
— জোশ কোডরফ 13

11
ফিলিপ নাভরের মন্তব্য সম্পূর্ণ সঠিক নয়। যদি কোনও কী চেপে রাখা হয় তবে আপনি কীডাউন, কীপ্রেস, কীডাউন, কী প্রেস, কীডাউন, কীপ্রেস কীআপ পাবেন get কীডাউন প্রতিটি পুনরাবৃত্তি জন্য বলা হয়।
— পি ড্যাডি

9

কী প্রেস টি কেবল মুদ্রণযোগ্য অক্ষর দ্বারা চালিত হয় এবং কীডাউন ইভেন্টের পরে বহিস্কার করা হয়। টাইপিং বিলম্ব সেটিংসের উপর নির্ভর করে একাধিক কীডাউন এবং কীপ্রেস ইভেন্ট হতে পারে তবে কেবল একটি কীআপ ইভেন্ট হতে পারে।

Keydown
কী টেপার
keyup


আপনি কাছাকাছি, কিন্তু ক্রম সম্পর্কে বন্ধ।
— পি ড্যাডি

@ পি বাবা - আমি এটিকে সংশোধন করেছি, স্মৃতি থেকে যাওয়ার আগে ডাবল চেক করা উচিত ছিল।
— স্টিভিওপওয়েল

@ স্টিভো 3000, ফাই: অ-মুদ্রণযোগ্য ইউনিকোড অক্ষরগুলি কীপ্রেস ইভেন্টগুলিকেও আগুন ধরিয়ে দেবে। আমার একটি অ্যাপ্লিকেশন রয়েছে যা বারকোড পাঠক দ্বারা পাঠ্যবক্সে সন্নিবেশিত ডেটা পড়ে এবং পাঠকটিতে অন-প্রিন্টযোগ্য ইউনিকোড অক্ষর অন্তর্ভুক্ত থাকে।
— জেফ লাফে

@ জলাফে - এমএসডিএন অনুসারে নয় কী-প্রেস ইভেন্টটি ননচার্যাকার কী দ্বারা উত্থাপিত হয়নি; যাইহোক, ননচার্যাক্ট কীগুলি কীডাউন এবং কীআপ ইভেন্ট উত্থাপন করে।
— স্টিভিপওয়েল

@ স্টিভো 3000, আমি নিশ্চিত নই যে বারকোড স্ক্যানার পাঠ্যবক্সে কীভাবে পাঠ্যকে ইনপুট করে তবে কীপ্রেস যে বিশেষ অক্ষর প্রেরণ করে তা আগুনে ফেলে। মানটি একটি মুদ্রণযোগ্য অক্ষর দিয়ে শুরু হয় এবং একটি প্রিন্টযোগ্য অক্ষর দিয়ে শেষ হয়। সুতরাং আমি নিশ্চিত না যে এটি যদি সত্যি হয় তবে এটি কীভাবে গুলি চালাচ্ছে। সম্ভবত আমি। নেট অ্যাসেমব্লিকে একবার দেখে নেব যাতে আইএল স্পাইয়ের সাথে ইভেন্টগুলি কী রয়েছে তা আসলে কী সনাক্ত হয়েছে তা আরও ভাল করে দেখার জন্য।
— জেফ লাফে

5

কীপ্রেস কীডাউন (এবং কীআপ) এর চেয়ে বিমূর্ততার উচ্চতর স্তর। কীডাউন এবং কীআপ হ'ল হার্ডওয়্যার সম্পর্কিত: কীবোর্ডের একটি কী এর আসল ক্রিয়া। কীপ্রেসটি আরও বেশি "আমি কীবোর্ড থেকে একটি চরিত্র পেয়েছি"।


4

এমএসডিএন থেকে:

মূল ইভেন্টগুলি নিম্নলিখিত ক্রমে ঘটে:

  1. keydown

  2. কী প্রেস

  3. keyup

তদ্ব্যতীত, কীপ্রেস আপনাকে কোনও পদক্ষেপ না নিরূপণ করতে ক্রিয়াটিকে " পরিচালিত " হিসাবে ঘোষণা করার সুযোগ দেয় ।


এফওয়াইআই, কীডাউন এবং কীআপের একটি হ্যান্ডেল সম্পত্তি রয়েছে যা আপনি সেট করতে পারেন যা কীপ্রেস এবং অন্যান্য কী ইভেন্টগুলির মধ্যে নয়।
— জেফ লাফে

এফডাব্লুআইডাব্লু যদিও কী-আপ, কীডাউনের মতো, কী-ইন্টআরগ্স প্যারামিটার পায় তবে এর Handledসম্পত্তি কী-আপের জন্য নিষ্ক্রিয় ( SuppressKeyPressএটি নিষ্ক্রিয়ও)।
— জনপি

3

আমি সর্বদা ভেবেছিলাম কীটি ডাউন করার সাথে সাথে কী ডাউন হয়ে গেছে, কী চাপুন এটি কী টিপানো এবং ছেড়ে দেওয়ার ক্রিয়া।

আমি এটি পেয়েছি যা কিছুটা আলাদা ব্যাখ্যা দেয়: http://bytes.com/topic/net/answers/649131-differences-keypress-keydown-event


3

কীডাউনটি রিলিজ না করে কী টিপছে, কীপ্রেস একটি সম্পূর্ণ প্রেস এবং রিলিজ চক্র।

আর একটি উপায় রাখুন, কীডাউন + কীআপ = কিপ্রেস


3
দুটিই MSDN অনুযায়ী, ঘটনা ক্রম keydown, কী টেপার সাথে, keyup (হয় msdn.microsoft.com/en-us/library/... )
— নাথন Koop

@ রবকওয়েল এছাড়াও, যেমন জ্লাফায় কীডাউন বা কীআপের উপর নির্ভর করে কীপ্রেসই নিখুঁতভাবে নির্দেশ করেছেন।
— সাইকোডাটা

1

ব্লগিং বিকাশকারী থেকে :

কীডাউন এবং কী-টিপসের মধ্যে পার্থক্য বোঝার জন্য একটি "চরিত্র" এবং "কী" এর মধ্যে পার্থক্যটি বোঝা দরকারী । একটি "কী" হ'ল কম্পিউটারের কীবোর্ডের একটি শারীরিক বোতাম, যখন একটি "অক্ষর" একটি বোতাম টিপে টাইপ করা প্রতীক। তত্ত্ব অনুসারে, কীডাউন এবং কীআপ ইভেন্টগুলি টিপিত বা প্রকাশিত কীগুলি উপস্থাপন করে , যখন কী কী চাপলে ইভেন্ট টাইপ করা একটি চরিত্রের প্রতিনিধিত্ব করে । সমস্ত ব্রাউজারে তত্ত্বটির প্রয়োগ এক নয়।

দ্রষ্টব্য: আপনি এই ধারণাটি বুঝতে কী ইভেন্ট টেস্টার (উপরে উল্লিখিত সাইটে উপলব্ধ) চেষ্টা করে দেখতেও পারেন।


1

কী চাপলে কীটি টিপে রাখা হবে তা নির্বিশেষে কী চাপলে কী একবার রিলিজ করা হবে তা একবারই ধরা পড়বে, তাই আপনি যদি এই জাতীয় প্রেসটি একবারেই ক্যাপচার করতে চান তবে কেইইউইপ হ'ল উপযুক্ত ঘটনা।


KeyPressঘটনা উভয় যখন চরিত্র autorepeat বৈশিষ্ট্য ফল সেইসাথে শারীরিক মূল প্রক্রিয়া প্রতিক্রিয়ায় ইনপুট থেকে উত্পন্ন প্রতিটি ভাষার প্রতিটি অক্ষরের জন্য উত্থাপিত হয়। কী-বোর্ড ইনপুট কীভাবে এই আচরণের দলিল করে।
— IInspectable

তুমি ঠিক. আমি আমার উত্তর আপডেট করব। সঠিক উত্তরটি হল KEYUP ব্যবহার করা যা এক বা একাধিক কী হিট প্রকাশের পরে একবার ট্রিগার হবে।
— মাইকেল হেফ্রাটি

আর ভুল না হলেও এটি এখনও জিজ্ঞাসা করা প্রশ্নের উত্তর দেয় না। এটি দরকারী নয়।
— IInspectable

0

সবচেয়ে সহজ ব্যাখ্যা:

আমি 'ডি' কীটি এক সেকেন্ডের জন্য চেপে ধরে রেখেছি।

dddddd

প্রথম ডি স্ক্রিনে প্রদর্শিত হওয়ার আগে কীডাউন ইভেন্টটি একবার ঘটেছিল, কিপ্রেস ইভেন্টটি times বার ঘটেছিল এবং কীপ ইভেন্টটি শেষবার স্ক্রিনে উপস্থিত হওয়ার পরে ঘটেছিল।


অভিশাপ, প্রশ্নটি ভুল করে আমার মাথায় নিয়ে গেল সে বোঝায় জাভাস্ক্রিপ্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.