PDA

View Full Version : مشکل با MessageBox



modirmasool
دوشنبه 12 مهر 1389, 21:29 عصر
دوستان سلام.
مشکل این کد چیه؟:گریه:


private void button2_Click(object sender, EventArgs e)
{
int a = 10;
MessageBox.Show(a);
}

یه چیز دیگه اینکه فرق MessageBox با Message در چیست؟

با تشکر

MoS4k1
دوشنبه 12 مهر 1389, 21:42 عصر
باید a رو تبدیل به string کنی
a.tostring()

Salah Sanjabian
دوشنبه 12 مهر 1389, 21:47 عصر
دوست عزیز درسته شما از VB6 تازه به C#‎ کوچ کردین و لی بهتره بایه کتاب شروع کنید.

modirmasool
دوشنبه 12 مهر 1389, 22:05 عصر
باید a رو تبدیل به string کنی
a.tostring()

اینکار رو قبلش کرده بودم ولی نشد!
این کل کدم هستش:



namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
int a = 10;
MessageBox.Show(a.ToString);
}
}
}

Saman_12
دوشنبه 12 مهر 1389, 22:07 عصر
به به جناب modirmasool چه خبر اینورا؟:قهقهه:(هیچ منظوری از این جمله ندارم!):تشویق:
توی سی شارپ بر عکس وبی شما نمی تونی یک متغییر از نوع X رو جای یک متغییر از نوع Y بزاری(Y ورودی یک فانکشن یا دستور هست.)یعنی شما باید حتما یک متغییر از نوع درخواستی تابع رو بهش بدی.(سی شارپ از این خطا ها زیاد میگره.) پس شما دو راه برای نمایش یک عدد از نوع int با مسیج باکس داری :
1.از ToString متغییر تعریف شده استفاده کنی که خروجی یک String باشه.

int a = 10;
MessageBox.Show(a.ToString());
2.ب استفاده از ;کلاس Convert باز هم نوع متغییر رو تغیر بدی.

int a = 10;
MessageBox.Show(Convert.ToString(a));
فرق MessageBox با Message در اینه که اولی پیامی رو نشون میده و دومی هم یک پیغام هست :
1.اولی

int a = 10;
MessageBox.Show(a.ToString());
2.دومی پیغام ویندوز هست مثل پیغام هایی که با SendMessage میشه فرستاد.


bool Bo = false;
ListBox Saman = new ListBox();

protected override void WndProc(ref Message m)
{
base.WndProc(ref m);


if (Bo == false)
{
Bo = true;
this.Controls.Add(Saman);
Saman.Height = this.Height;
Saman.Width = this.Width;
}

Saman.Items.Add(m.ToString());
}


اینکار رو قبلش کرده بودم ولی نشد!
سی شارپ به همچی گیر میده مثل نگذاشتن پرانتز که توی کد شما اینطور هست :

MessageBox.Show(a.ToString);
صحیح :

MessageBox.Show(a.ToString());

modirmasool
دوشنبه 12 مهر 1389, 22:15 عصر
به به جناب modirmasool چه خبر اینورا؟:قهقهه:(هیچ منظوری از این جمله ندارم!):تشویق:
توی سی شارپ بر عکس وبی شما نمی تونی یک متغییر از نوع X رو جای یک متغییر از نوع Y بزاری(Y ورودی یک فانکشن یا دستور هست.)یعنی شما باید حتما یک متغییر از نوع درخواستی تابع رو بهش بدی.(سی شارپ از این خطا ها زیاد میگره.) پس شما دو راه برای نمایش یک عدد از نوع int با مسیج باکس داری :
1.از ToString متغییر تعریف شده استفاده کنی که خروجی یک String باشه.

int a = 10;
MessageBox.Show(a.ToString());
2.ب استفاده از ;کلاس Convert باز هم نوع متغییر رو تغیر بدی.

int a = 10;
MessageBox.Show(Convert.ToString(a));
فرق MessageBox با Message در اینه که اولی پیامی رو نشون میده و دومی هم یک پیغام هست :
1.اولی

int a = 10;
MessageBox.Show(a.ToString());
2.دومی پیغام ویندوز هست مثل پیغام هایی که با SendMessage میشه فرستاد.


bool Bo = false;
ListBox Saman = new ListBox();

protected override void WndProc(ref Message m)
{
base.WndProc(ref m);


if (Bo == false)
{
Bo = true;
this.Controls.Add(Saman);
Saman.Height = this.Height;
Saman.Width = this.Width;
}

Saman.Items.Add(m.ToString());
}


سی شارپ به همچی گیر میده مثل نگذاشتن پرانتز که توی کد شما اینطور هست :

MessageBox.Show(a.ToString);
صحیح :

MessageBox.Show(a.ToString());

آقا سامان خدا خیرت بده من اینجا خیلی احساس تنهایی می کنم.:ناراحت: ولی با دیدن شما روحیه گرفتم.:قلب:
این مثال دومی message رو نفهمیدم.:افسرده: منظور همون ارسال پیغام به برنامه های دیگه هستش یا نه؟
ممنون.

Saman_12
دوشنبه 12 مهر 1389, 22:22 عصر
خیلی ممنون نظر لطف شماست!:قلب:

این مثال دومی message رو نفهمیدم. منظور همون ارسال پیغام به برنامه های دیگه هستش یا نه؟
این مثال برای برنامه خود تون هست و یک Sub وبی حساب میشه البته میشه با این روش (ولی کمی فرق داره.) برای برنامه های دیگه هم پیغام فرستاد شما اگه اون کد رو زیر public partial class Form1 : Form یا همون کلاس فرم اظافه کنید اون وقت بهتر متوجه منظورم میشید.

FastCode
دوشنبه 12 مهر 1389, 22:28 عصر
bool Bo = false;
ListBox Saman = new ListBox();

protected override void WndProc(ref Message m)
{
base.WndProc(ref m);


if (Bo == false)
{
Bo = true;
this.Controls.Add(Saman);
Saman.Height = this.Height;
Saman.Width = this.Width;
}

Saman.Items.Add(m.ToString());
}

ببخشید این حرف رو میزنم ولی کاری که شما میکنی رو اصلاً نباید بکنی.

این مثال خیلی پیچیدست ولی معادل VB هم داره:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.wndproc(VS.71).aspx

Saman_12
دوشنبه 12 مهر 1389, 22:37 عصر
ببخشید این حرف رو میزنم ولی کاری که شما میکنی رو اصلاً نباید بکنی.

این مثال خیلی پیچیدست ولی معادل VB هم داره:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.wndproc(VS.71).aspx

خدا ببخشه!:قهقهه:
والا مثالی که هم کوتاه باشه و هم قابلیت درک بالا رو داشته باشه پیدا نکردم گفتم این تیکه کد شاید بهترین مثال باشه حالا شما کد بهتری دارین که این مسئله رو روشن میکنه بزارید.(اگه نکته داشت ما هم یک چیزی یاد میگرم!):لبخند:

صباح فتحی
دوشنبه 12 مهر 1389, 23:02 عصر
جناب modirmasol شما بهتره بشینید کتاب اقای هاشمیان رو یه نگاه بندازید واسه یه مسیج باکس ساده دنیارو زیرو روکردید:لبخند:

modirmasool
سه شنبه 13 مهر 1389, 00:26 صبح
جناب modirmasol شما بهتره بشینید کتاب اقای هاشمیان رو یه نگاه بندازید واسه یه مسیج باکس ساده دنیارو زیرو روکردید:لبخند:

آقا ما بی تقصیریم. همش به خاطر این زبون شیرین سی شارپه.:لبخند:
راستش من یه کتاب گرفتم که دیگه از اون حجیم تر و گنده تر تو بازار ندیدم:لبخند:. الان هم 120 صفحه اش رو خوندم. مشکل اینجایه که نمیدونم چرا این کتاب ها ،یه راست نمیرن سر اصل مطلب. شاید باورتون نشه ولی هنوز تو این 120 ص یه کد درست حسابی یاد نداده. منم دیگه حوصلم سر رفت و با خودم گفتم با توجه به این که خیلی از مباحث پایه رو میدونم،اگه از بچه های اینجا کمک بگیرم خیلی زودتر این زبون شیرین رو یاد میگرم. اگه یه کوچولو اولش هولم بدین (هوله یا حوله؟:گیج:) بقیشو خودم می رم.
من شنیده بودم کسانی که از ویبی به سی شارپ میرن، خیلی سختی میکشن، ولی باورم نمیشد. که خوب حالا شد.:چشمک:
خلاصه سرتون رو بدرد نیارم، بهتون قول میدم تا چند ماه دیگه (شایدم سال) شاهد تغییر اساسی در سطح سوالاتم باشین.:لبخند:
آفرین بر خودم.:تشویق::تشویق::تشویق: