PDA

View Full Version : سوال: به دست آوردن كد ascii کلید زده شده



behesht.royaha
سه شنبه 26 بهمن 1389, 14:39 عصر
با سلام خدمت تمامي بزرگواران و اساتيد

ميتونيد كد نحوه به دست آوردن كد اسكي كليد زده شده روي كيبورد رو برام بزاريد يعني داخل يك تكست باكس هر كليد روي فشار ميدوي رو كيبورد كدش داخل تكست باكس بيوفته . با زبان C# ممنون ميشم

AmirHarirbafan
سه شنبه 26 بهمن 1389, 16:00 عصر
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
textBox1.Text = e.KeyValue.ToString();
e.SuppressKeyPress = true;
}

mehdi.mousavi
سه شنبه 26 بهمن 1389, 16:22 عصر
با سلام خدمت تمامي بزرگواران و اساتيد ميتونيد كد نحوه به دست آوردن كد اسكي كليد زده شده روي كيبورد رو برام بزاريد يعني داخل يك تكست باكس هر كليد روي فشار ميدوي رو كيبورد كدش داخل تكست باكس بيوفته . با زبان C# ممنون ميشم

سلام.
من نمیدونم هدفتون از اینکار چیه، اما این مساله رو نباید سمت سرور Handle کرد. چون اینطوری، با زدن هر کلید، یه Postback به سرور خواهید داشت (کاش مساله فقط به اینجا ختم میشد). سپس، Page Life Cycle سمت سرور اجرا میشه و ... هر جوری حساب کنید، این کار مطلقا در یک برنامه تحت وب به صرفه نیست. برای اینکار باید از JavaScript استفاده کرد و این مساله رو سمت Client هندل کرد. اگر هدف از این کار رو بگید، میتونم پاسخ دقیق تری بهتون بدم.

موفق باشید.

behesht.royaha
سه شنبه 26 بهمن 1389, 16:53 عصر
سلام.
من نمیدونم هدفتون از اینکار چیه، اما این مساله رو نباید سمت سرور Handle کرد. چون اینطوری، با زدن هر کلید، یه Postback به سرور خواهید داشت (کاش مساله فقط به اینجا ختم میشد). سپس، Page Life Cycle سمت سرور اجرا میشه و ... هر جوری حساب کنید، این کار مطلقا در یک برنامه تحت وب به صرفه نیست. برای اینکار باید از JavaScript استفاده کرد و این مساله رو سمت Client هندل کرد. اگر هدف از این کار رو بگید، میتونم پاسخ دقیق تری بهتون بدم.

موفق باشید.

با سلام دوست عزيز . ممنون از دقت فراوانتون . من ميخوام با به دست آوردن كه اسكي فوكوس رو اجرا كنم يعني از تكست باكس 1 به تكست باكس 2 برم
كد جاوا اسكريپت رو چندتايي ديدم ولي نمي دونم چطور ميشه استفاده كرد به خاطر همين ترجيح دادم كه از code behind خود Asp.net و زبان c# استفاده كنم.
اگه شما با java script پيشنهاد ميدي ميشه يه مثال كامل برام بزاريد . واقعا احتياج دارم

ممنون ميشم اگه با زبان c# باشه.

تشكر

mehdi.mousavi
سه شنبه 26 بهمن 1389, 16:58 عصر
با سلام دوست عزيز . ممنون از دقت فراوانتون . من ميخوام با به دست آوردن كه اسكي فوكوس رو اجرا كنم يعني از تكست باكس 1 به تكست باكس 2 برم
كد جاوا اسكريپت رو چندتايي ديدم ولي نمي دونم چطور ميشه استفاده كرد به خاطر همين ترجيح دادم كه از code behind خود Asp.net و زبان c# استفاده كنم.
اگه شما با java script پيشنهاد ميدي ميشه يه مثال كامل برام بزاريد . واقعا احتياج دارم

ممنون ميشم اگه با زبان c# باشه.

تشكر


سلام.
لطفا به این آدرس (http://javascript.internet.com/forms/tab-key-emulation.html) رجوع کنید تا با یکی از روشهای موجود برای اینکار (با استفاده از JavaScript) آشنا بشید.

موفق باشید.

behesht.royaha
سه شنبه 26 بهمن 1389, 17:20 عصر
ممنون جناب موسوي .

هر چقدر نگاه ميكنم و دستكاريش ميكنم نميتونم بزارمش تو صفحم و ازش استفاده كنم.

ميشه يزرگواري كنيد يه مثال كوچيك به دوتا تكس باكس برام بزاريد. ممنون ميشم خدا خيرت بده.

mehdi.mousavi
پنج شنبه 28 بهمن 1389, 10:48 صبح
سلام.
حقیقتش کدی که بهتون دادم اینقدر گویا و واضح هستش که نمیدونم منظورتون از عبارت "نمیتونم بذارمش تو صفحه" چیه. این کد رو ببینید:


<html>
<head>
<script language="JavaScript">
nextfield = "box1"; // name of first box on page
netscape = "";
ver = navigator.appVersion; len = ver.length;
for (iln = 0; iln < len; iln++) if (ver.charAt(iln) == "(") break;
netscape = (ver.charAt(iln + 1).toUpperCase() != "C");

function keyDown(DnEvents) { // handles keypress
// determines whether Netscape or Internet Explorer
k = (netscape) ? DnEvents.which : window.event.keyCode;
if (k == 13) { // enter key pressed
if (nextfield == 'done') return true; // submit, we finished all fields
else { // we're not done yet, send focus to next box
eval('document.yourform.' + nextfield + '.focus()');
return false;
}
}
}
document.onkeydown = keyDown; // work together to analyze keystrokes
if (netscape) document.captureEvents(Event.KEYDOWN | Event.KEYUP);
</script>
</head>
<body>
<center>
<form name="yourform">
Box 1:<input type="text" name="box1" onfocus="nextfield ='box2';"><br>
Box 2:<input type="text" name="box2" onfocus="nextfield ='box3';"><br>
<input type="submit" name="done" value="Submit">
</form>
</center>
</body>
</html>


در متغیر nextfield در کد JavaScript، ابتدا نام اولین المنت در Form رو قرار میدیم. اینجا اولیش box1 هستش. در HTML هم برای هر Input element یک خصیصه nextfield در نظر گرفته شده که نشون میده فیلد بعدی چی باید باشه. در نهایت، در کد JS فوق چک میکنه که اگر name المنتی که روش کلید Enter زده شده (کد 13) برابر done بود، با برگردوندن true اجازه submit شدن فرم رو میده و ... حالا بفرمایید با کجای این کد مشکل دارید؟

موفق باشید.