PDA

View Full Version : تعریف رفتار متفاوت در textbox با کلیک دوباره روی دکمه



omid2048
شنبه 02 آبان 1394, 19:22 عصر
عزیزان سلام
بنده یه پروژه دارم که شامل یک تکس باکس هست و چند دکمه----->به عکس نگاه کنید

136225

خب میخوام وقتی روی گزینه "نیو" کلیک کنم در صورتی که متنی توش بود اول پیغام ذخیره رو بده(که تا اینجا رو نوشتم) و میخوام اگر کاربر متن رو ذخیره کرد و
برای بار دوم روی گزینه "نیو" زد اینبار متن های توی تکس باکس رو حذف کنه
خب چیکار کنیم ما؟؟

کدهایی که نوشتم

if(bolerror!=false)
{
var msb = MessageBox.Show("Save?", "??????", MessageBoxButtons.YesNoCancel);
switch(msb)
{
case DialogResult.Yes:
saveFileDialog1.Title = "save";
saveFileDialog1.FileName = "demo";
saveFileDialog1.Filter = "allfile |*.txt";
saveFileDialog1.FilterIndex = 1;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
strname = saveFileDialog1.FileName;
System.IO.File.WriteAllText(strname, textBox1.Text);
bolerror = false;
}



break;
case DialogResult.No:
textBox1.Text = "";
break;

}
}

systam
شنبه 02 آبان 1394, 19:39 عصر
سلام
برای این کار از richbox استفاده کن بجای textbox
و برای چک کردن متنی که سیو شده یا نه میتونی از متغیر boolean استفاده کنی

omid2048
شنبه 02 آبان 1394, 19:42 عصر
سلام
برای این کار از richbox استفاده کن بجای textbox
و برای چک کردن متنی که سیو شده یا نه میتونی از متغیر boolean استفاده کنی
چه تفاوت هایی هست بین تکس باکس و رایچ باکس؟؟؟؟

و اگه بخوام با درگ کردن یه فایل متنی روی تکس باکس فورمم اونو توی تکس باکس نمایش بدی چیکار کنم؟

systam
شنبه 02 آبان 1394, 19:51 عصر
با کمک ریچباکس متونی متن درون رو مستقیم سیو کنی با پسوند rtf.
کد نمونه :

richtextbox1.savefile(save filedialog1.filename)

اینم برای درگ کردن :
public partial class Form1 : Form {
public Form1()
{
InitializeComponent();
richTextBox1.DragDrop += new DragEventHandler(richTextBox1_DragDrop);
richTextBox1.AllowDrop = true;
}


void richTextBox1_DragDrop(object sender, DragEventArgs e)
{
object filename = e.Data.GetData("FileDrop");
if (filename != null)
{
var list = filename as string[];


if (list != null && !string.IsNullOrWhiteSpace(list[0]))
{
richTextBox1.Clear();
richTextBox1.LoadFile(list[0], RichTextBoxStreamType.PlainText);
}


}
}

omid2048
شنبه 02 آبان 1394, 20:17 عصر
سلام
برای این کار از richbox استفاده کن بجای textbox
و برای چک کردن متنی که سیو شده یا نه میتونی از متغیر boolean استفاده کنی
میشه لطفا کدش رو بذاری..من الان یه متغییر بولین دارم توی عکس نگاه کنید
و بگید کدش رو کجا و چطوری استفاده کنم!!؟

systam
شنبه 02 آبان 1394, 22:05 عصر
سلام
داداش گلم همه کد ها داده بشه بعد هلو برو گلو یکم خودتون هم حرکتی بزنید
با استفاده از IF میتونی یه شرط بزاری چک کنی که متغیرت مقدارش چیه
فقطز در هنگام ذخیره کردن متن ریچ بیا مقدار متغیر رو جوری تنظیم کن برای دوباره ذخیره شدن از اون استفاده کنی :متفکر:

Mahmoud.Afrad
شنبه 02 آبان 1394, 23:50 عصر
در کنترلهای textbox و richtextbox برای متوجه شدن اینکه تغییری در متن ایجاد شده یا نه میتونید از پراپرتی Modified استفاده کنید:

private string _fileName;
private void NewDocument()
{
if (textBox1.Modified)
{
DialogResult dialogResult = MessageBox.Show("Do you want to save changes?", "Confirm!", MessageBoxButtons.YesNoCancel);
switch (dialogResult)
{
case DialogResult.Cancel:
return;
case DialogResult.Yes:
SaveToFile();
break;
case DialogResult.No:
textBox1.Clear();
_fileName = null;
break;
}
}
else
{
textBox1.Clear();
_fileName = null;
}
}