PDA

View Full Version : مشکل این خطا چیست ؟



harani
دوشنبه 23 مرداد 1391, 02:01 صبح
لطفاً راهنماییم کنید .


91182

Padrone
دوشنبه 23 مرداد 1391, 06:03 صبح
احتمالا از فضای بیش از حد استفاده شده
یا حجم فایل خیلی زیاده یا برنامه از منابع زیادی داره استفاده می کنه از کنترل Garbage collector استفاده کنید

ali.bahrami
دوشنبه 23 مرداد 1391, 09:35 صبح
سلام دوست عزیز ... کاش کدهای بیشتری گذاشته بودی
الان این fsd که تعریف کردی چیه ؟ شاید مشکل از اون باشه

tooraj_azizi_1035
دوشنبه 23 مرداد 1391, 17:18 عصر
کد بیشتری بذار.

hakim22
دوشنبه 23 مرداد 1391, 18:07 عصر
خطای شما در محدوده ی بین {} درون if داره اتفاق می افته و مربوط به یک حلقه است که به هر دلیلی حجم زیادی از حافظه رو اشغال می کنه.
کد اون قسمت رو بزار !

the king
دوشنبه 23 مرداد 1391, 22:06 عصر
اون sdf.FileName داره به طریقی دور باطل می زنه، فرضا از FileName می پرسند اسم فایل چیه میگه از GetFileName بپرسید، میرن از GetFileName
می پرسند، میگه از FileName بپرسید، این ارجاع های تو در تو اونقدر پشته رو پر می کنه که حافظه پشته سر ریزی کنه و خطا بده :

class SDF
{
public string FileName
{
get
{
return GetFileName();
}
}

private string GetFileName()
{
return FileName;
}
}

private void Form1_Load(object sender, EventArgs e)
{
SDF sdf = new SDF();
if (File.Exists(sdf.FileName))
{
//
}
}

harani
دوشنبه 23 مرداد 1391, 22:36 عصر
دوستان از همتون ممنونم مشکلو خودم حل کردم .
یه مشکل دیگه دارم که تایپیک نخواستم براش درست کنم و اونم اینکه تو فرمم یک ریچ باکس دارم یه دکمه New میخوام با فشردن این دکمه یک مسیج باکس سه دکمه ای ایجاد میشود .
که خودم اونو به شکل زیر نوشتم :


91227


مشکل این پیام اینه دکمه ی yes آن درست کار میکنه ولی دکمه های No و Cancel آن حداقل دوبار سوال میشه من فقط میخوام یبار همه دکمه ها رو سوال کنه و عملیات مربوطه را انجام بده ممنون اگه با کد توضیح بدبد .

tooraj_azizi_1035
دوشنبه 23 مرداد 1391, 22:55 عصر
شما خروجی MessageBox رو بریز تو یه متغیر که Result رو نگه می داره بعد این متغیر رو با یه if تست کن اون هم فقط برای Yes و No چون Cancel رو اگه بزنه کد هیچ کاری نمی کنه و این همون هدف Cancel هست. واضحه؟

MessageBoxResult result =
MessageBox.Show("Would you like to see the simple version?",
"MessageBox Example", MessageBoxButton.OKCancel);

if (result == MessageBoxResult.OK)
{
MessageBox.Show("No caption, one button.");
}

harani
دوشنبه 23 مرداد 1391, 22:57 عصر
به لطف یزدان پاک این مشکلمم خودم حل کردم :


91229


بازم از همه دوستان کمال تشکر رو دارم .

the king
دوشنبه 23 مرداد 1391, 23:08 عصر
دوستان از همتون ممنونم مشکلو خودم حل کردم .
یه مشکل دیگه دارم که تایپیک نخواستم براش درست کنم و اونم اینکه تو فرمم یک ریچ باکس دارم یه دکمه New میخوام با فشردن این دکمه یک مسیج باکس سه دکمه ای ایجاد میشود .
که خودم اونو به شکل زیر نوشتم :


مشکل این پیام اینه دکمه ی yes آن درست کار میکنه ولی دکمه های No و Cancel آن حداقل دوبار سوال میشه من فقط میخوام یبار همه دکمه ها رو سوال کنه و عملیات مربوطه را انجام بده ممنون اگه با کد توضیح بدبد .

[/CENTER]

عملیات New فقط زمانی باید پیغامی رو نشون بده که قبلا متنی داخل RichTextBox بوده که بعد از ویرایش اش Save نشده.

یک متغیر changed و کد نویسی برای رخداد TextChanged اون rtbWord تون لازمه :

private bool changed = false;

private void rtbWord_TextChanged(object sender, EventArgs e)
{
changed = true;
}


یعنی وقتی متن داخل rtbWord عوض شد، changed نشون بده که Save شدنش لازمه، وگرنه نیازی به پیغام نیست :

private void btnNew_Click(object sender, EventArgs e)
{
if (changed)
{
switch (MessageBox.Show("آیا می خواهید تغییرات را ذخیره کنید؟"
, "ذخیره کردن", MessageBoxButtons.YesNoCancel
, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1
, MessageBoxOptions.RtlReading))
{
case DialogResult.Yes:
if (ExistFile)
Save();
else
SaveAs();
if (changed)
return;
break;
case DialogResult.Cancel:
return;
}
}
rtbWord.Text = "";
changed = false;
}


یادتون نره که حتما داخل Save و SaveAs و Load یا Open ای که نوشته اید بعد از اینکه عملیات با موفقیت انجام شد، changed رو false کنید.
یعنی فرضا اگه SaveAs رو کاربر Cancel کرد دیگه مقدار changed رو عوض نکنید، چون در btnNew چک می کنه که اگر SaveAs رو Cancel کرده
پس نباید متن خالی بشه و باید از روتین در بیاد. فقط زمانی changed رو False کنید که عملیات با موفقیت انجام شده، چه بعد از ذخیره کردن
و چه بعد از خواندن از فایل.

harani
سه شنبه 24 مرداد 1391, 00:09 صبح
چرا تو این کد پس از فشردن دکمه Cancel مسیج باکسم فرم بسته میشه (تو رویداد Closing هم همینه)


91233

Mahmoud.Afrad
سه شنبه 24 مرداد 1391, 08:10 صبح
از رویداد formclosing باید استفاده کنید.

برای کنسل به جای return ، بنویسیدe.Cancel = true;

harani
سه شنبه 24 مرداد 1391, 12:03 عصر
سلام من دو تا فرم دارم که روی فرم اصلی یک ریچ باکس و یک دکمه Show دارم که فرم دوم رو بصورت Show (نه Show dialog) نشان میدهد . روی فرم دومم یک دکمه Find و یک تکست باکس دارم . من میخوام با فشرده شدن دکمه ی find فرم دومم (که با دکمه show فرم اصلی ظاهر شده) کلمه ای را که در تکست باکس هست در کنترل ریچ باکس فرم اصلیم انتخاب کنه . دقت کنید که فرم دوم بصورت Show ظاهر میشه نه Show diolog

harani
سه شنبه 24 مرداد 1391, 12:26 عصر
من خودم از کد زیر استفاده میکنم ولی جواب نمیده : اگه میشه مشکلشو ببینید (تو اینجا در فرم دومم یک متغیر public bool buttonfind = false;//a تعریف کردم که با فشردن کلید find ئ true میشه ) این دکمه btnFindandReplace همان کلید show هستش و ّفرم Find_replace هم همان فرم دومم هست .


91249