איך משתמשים במקלדת בC#?? - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

איך משתמשים במקלדת בC#??


Mazumotte

Recommended Posts

מה נשמע?

המורה שלי למחשבים הטילה על כמה תלמידים בכיתה(אני בינהם) להראות לכיתה איך להשתמש בWindows application.

חיפשתי בכל מקום אפשרי ולא מצאתי.

עזרה בבקשה. תודה מראש

קישור לתוכן
שתף באתרים אחרים

אתה מתכוון נגיד שרושמים משהו בתיבת טקסט ולהראות את זה בתור הודעת שגיאה כזה?

במקרה וכן זה משהו כזה :


string text = textBox.Text;
MessegeBox.show(text);

אם לזה התכוונת :s05:

קישור לתוכן
שתף באתרים אחרים

*סליחה על התגובה המאוחרת*

לא...

אני מתכוון שנגיד שיש LABEL שכתוב בה משהו.

ואז לוחצים על 'a' או על חץ שמאלה והLABEL זזה שמאלה איזה 10 פיקסלים.

אני יכול לעשות את זה בCONSOLE APPLICATION ע"י הפקודות


x=Console.ReadKey();
if (x.Key==ConsoleKeys.'a')
ConsoleKeyInfo x=new ConsoleKeyInfo();

ואז כל מיני דברים שיקרו כמו set cursor pisition וכתיבה של משהו שיזוז וכד'.

הקיצר אני צריך פקודות שיקלטו משהו מהמקלדת לתוך משתנה ואז שאני יוכל לבדוק מה זה ולהשתמש.

קישור לתוכן
שתף באתרים אחרים

אתה צריך או להירשם לאירוע של KeyPress או להשתמש באירוע עצמו

הנה 2 הדרכים בשבילך



private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
Point p = new Point();
switch (e.KeyChar)
{
case 'w':
p.X = label1.Location.X;
p.Y = label1.Location.Y - 10;
break;
case 'a':
p.X = label1.Location.X-10;
p.Y = label1.Location.Y;
break;
case 's':
p.X = label1.Location.X;
p.Y = label1.Location.Y + 10;
break;
case 'd':
p.X = label1.Location.X+10;
p.Y = label1.Location.Y;
break;
default:
break;
}
label1.Location = p;


}

או


public Form1()
{
KeyPress += new KeyPressEventHandler(Custom_Handler);
InitializeComponent();
}

void Custom_Handler(object sender, KeyPressEventArgs e)
{
Point p = new Point();
switch (e.KeyChar)
{
case 'w':
p.X = label1.Location.X;
p.Y = label1.Location.Y - 10;
break;
case 'a':
p.X = label1.Location.X-10;
p.Y = label1.Location.Y;
break;
case 's':
p.X = label1.Location.X;
p.Y = label1.Location.Y + 10;
break;
case 'd':
p.X = label1.Location.X+10;
p.Y = label1.Location.Y;
break;
default:
break;
}
label1.Location = p;
}

קישור לתוכן
שתף באתרים אחרים

ואללה תודה רבה

המשכתי את התוכנית שרציתי לשים את זה בה וזה מה שיצא:

[left]public class Program : Form
{
// Create an instance of a Label.
private Label label1;
private Button b;
// Constructor
public Program()
{
// Changes the font name and size

this.Font = new Font("MS Sans Serif", 20);

// Label initialization and setup
label1 = new Label();
label1.Location = new Point(24, 16);
label1.Size = new Size(150, 24);
label1.Text = "......";
label1.TextAlign = ContentAlignment.MiddleCenter;

// Add the label to the Form
this.Controls.Add(label1);
b = new Button();
b.Location = new Point(10, 10);
b.Size = new Size(100, 100);
b.Text = "nothing";
b.TextAlign = ContentAlignment.MiddleCenter;
this.Controls.Add(b);



KeyPress += new KeyPressEventHandler(handler);
InitializeComponent();


}



// Main begins program execution


static void Main()
{
//Application.EnableVisualStyles();
//Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Program());


}

private void InitializeComponent()
{
this.SuspendLayout();
//
// Program
//
this.ClientSize = new System.Drawing.Size(503, 266);
this.Name = "Program";
this.ResumeLayout(false);

}
void handler(object sender, KeyPressEventArgs e)
{
Point p = new Point();
switch (e.KeyChar)
{
case 'a':
{
p.X = label1.Location.X-40;
p.Y=label1 .Location .Y;

break;
}
case 'd':
{
p.X = label1.Location.X+40;
p.Y=label1 .Location .Y;

break;
}

default: break;
}
label1.Location = p;
}


}
}
[/left]

למה זה לא עובד אני לא יודע...

קישור לתוכן
שתף באתרים אחרים

הקוד עובר קומפילציה??

אם כן אז תבדוק שאכן יש לך את האירוע ושנרשמת אליו כמו שצריך ושהשם של ה-LABEL אכן תואם לLABEL שאתה רוצה להזיז

קישור לתוכן
שתף באתרים אחרים

מה זאת אומרת יש את האירוע ונרשמת אליו איך שצריך?

כתבתי את הארוע,


{
Point p = new Point();
switch (e.KeyChar )
{
case 'a':
{
p.X = label1.Location.X-40;
p.Y=label1 .Location .Y;

break;
}
case 'd':
{
p.X = label1.Location.X+40;
p.Y=label1 .Location .Y;

break;
}

default: break;
}
label1.Location = p;
}
private void handler(object sender, KeyPressEventArgs e)

ונרשמתי אלי ככה:


InitializeComponent();
KeyPress += new KeyPressEventHandler(handler);

הלייבלים מתאימים.

שאלתי את המורה שלי למחשבים והוא אמר שיכול להיות שהוא לא מזהה את זה אלא אם כן הגדרתי את זה ב-form designer אבל לא נראה לי שזאת בעיה..

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...