PDA

View Full Version : مشکل با #C



morteza_1234m
شنبه 05 اردیبهشت 1388, 21:39 عصر
دوستان چرا #C اینطوریه عاجز شدم
من یک کد به صورت زیر داشتم

form3 frm=new form3();
frm.mdiparent=this;
frm.show;

خوب تا این جا با این کد مشکلی نداشتم و فرم 3 را باز می کند جالب اینجاست که من اومدم تو این کد تغییراتی ایجاد کردن و خط اول را به فرم 4 تغییر دادم ولی هنوز پس از اجرا همون فرم 3 را باز می کند.حتی نام فرم ها را هم عوض کردم ولی هنوز همون مشکل را داره .

مشکل دیگر این است که من دو تا پنل دارم که اولی مربوط به ظاهری است که رمز عبور و نام کاربری را می گیره اگر درست بود پنل اول پنهان و پنل دوم نمایش داده می شود . رمز عبور و نام کاربری را که وارد می کنی پنل یک پنهان میشه و پنل دو نمایش داده میشه (خوب تا اینجا مشکلی نیست). جالب اینجاست که من تو پنل دو یک تب کنترل دارم که درونش چندا تکس باکس هست ولی تب کنیرل را نمایش می دهد ولی اشیا روی این شی را نمایش نمی دهد
چه کار کنم 2 هفته است که گرفتار این مشکلات در Visual Studio و #C هستم:عصبانی++:

rnm123
شنبه 05 اردیبهشت 1388, 21:50 عصر
برنامه ات را rebuild کرده ای ببینی مشکلت حل میشود یا نه ؟

seven7777777
شنبه 05 اردیبهشت 1388, 22:59 عصر
اگه مشکلت حل نشد مجبوری برامتو اینجا بذاری تا ما تو سیستم هامون چکش کنیم شاید مشکل پیدا شد .

morteza_1234m
شنبه 05 اردیبهشت 1388, 23:00 عصر
نه مشکل حل نشد
http://rapidshare.com/files/225673367/PL.rar.html

rnm123
شنبه 05 اردیبهشت 1388, 23:38 عصر
من با این سایت rapidShare ذاتا مشکل دارم . نشد یکی یک فایل در اون قرار بده و من بتونم اونو دانلود کنم ! یا من بلد نیستم یا سایت با من لج کرده ! به هر حال سایت mediaFire یک سایت عالی برای upload و مدیریت فایلها است من کهاز اون راضیم . اگه تونستی فایلتو انونجا بذار بررسی کنیم ( اگر مشکلت حل شد که دیگر نیازی نیست !)

adinochestva
یک شنبه 06 اردیبهشت 1388, 00:06 صبح
clean solution کردی قبل از rebuild ?

morteza_1234m
یک شنبه 06 اردیبهشت 1388, 00:07 صبح
کاری نداره که وقتی رو لینک کلیک می کنی دوتا گزینه میاد جلوت یکیش free هست که روی همین کلیک می کنی و بعد از 40 ثانیه یک لینک بهت میده که روش نوشته download می زنی و تمام

mohsen_csharp
یک شنبه 06 اردیبهشت 1388, 10:27 صبح
میشه بگید این کدها یعنی چه که در Form3_Load که در داخل کلاس Form4 می باشد ، نوشته اید

Form4.ActiveForm.Height = Form1.ActiveForm.Height;
Form4.ActiveForm.Width = Form1.ActiveForm.Width;
panel1.Visible = true;
panel1.Left = Form4.ActiveForm.Left;
panel1.Top = Form4.ActiveForm.Top;
panel1.Width = Form4.ActiveForm.Width;
panel1.Height = Form4.ActiveForm.Height;
groupBox1.Left = panel1.Width / 3;
groupBox1.Top = panel1.Height / 3;

panel2.Visible = false;
panel2.Left = Form4.ActiveForm.Left;
panel2.Top = Form4.ActiveForm.Top;
panel2.Width = Form4.ActiveForm.Width;
panel2.Height = Form4.ActiveForm.Height;

به شما شدیدا توصیه می کنم که فرم های 3 و 4 را به طور کامل پاک کنید و از اول آن ها را ایجاد کنید

happy65_sh
یک شنبه 06 اردیبهشت 1388, 10:43 صبح
بهترین روش همینه که فرم های 3,4 را از نو ایجادکنی و سعی کن اسمهای بامعنی تری به فرم هایت بدی چون اگه سه تا دیگه فرم به این برنامه اضافه کنی ببین چی می شه..؟؟

morteza_1234m
یک شنبه 06 اردیبهشت 1388, 12:19 عصر
mohsen_csharp (http://barnamenevis.org/forum/member.php?u=36508)
قبل از اینکه نامشون رو عوض کنم هم جواب نمیداد و چون جواب نمیداد گفتم شاید بشه اینجوری کلاه سرش گذاشت
در ضمن اینکه میگید فرم 3 و4 را پاک کنید و از اول بسازید قبلا سه مرتبه این کار را کرده ام و کل پروژه را پاک کردم و از اول ساختم
برای همینه میگم عاجز شدم

mohsen_csharp
یک شنبه 06 اردیبهشت 1388, 12:25 عصر
اصلا vs.net2005 رو uninstall کنید و 2008 رو نصب کنید . بعد پروزه رو از اول کد نویسی کنید چون کدها خیلی به هم ریخته بود. در ضمن برای upload فایل های کوچیک از همین سایت استفاده کنید.

morteza_1234m
یک شنبه 06 اردیبهشت 1388, 21:59 عصر
من یکی از دلایلی که از 2008 استفاده نکردم این بود که در دانشگاه 2005 رو به زور جواب میده
مگر روشی باشه که بشه کدهای 2008 رو در 2005 هم دست کاری و دید

rnm123
یک شنبه 06 اردیبهشت 1388, 23:08 عصر
دوست عزیز برنامه شما را تست کردم موارد زیر را بررسی کنید :
اولا در کلاس class1 از فضای نامی بنام
WIALib استفاده کرده اید که هنگام تست برنامه خطای فضای نام ناشناخته میداد که مجبور شدم کلاس را موقتی حذف کنم ( احتمالا شما یک فایل dll را add خواهید نمود) ماسوای این مشکل اصلی برنامه شما در کد فرم 4 میباشد . اگر شما دقت کنید در کد فرم 4 شما دو رویداد
Form3_Load و Form3_ResizeEnd دارید . در نام این رویدادها عدد سه را به 4 تغییر دهید ودر پاسخ به تغییر نام این رویداد توسط vs که از شما خواهد خواست جواب مثبت دهید . سپس فرم 4 را باز نموده از پنجره properties سربرگ events را انتخاب نموده و برای رویداد load فرم رویداد فوق را انتخاب نمائید . همین کار را برای رویداد دوم هم انجام دهید ( چون نام آنها را تغییر داده اید) . با اینکار مشکل شما حل میشود میماند یک مورد دیگر و آن است که در کد فرم 1 اصلا شما فرم 4 را فراخوانی نمیکنید! شما فقط یک شرط گذاشته اید که اگر فایل مورد نظر در درایو سی موجود نبود فرم 4 را نمایش بده ! برای تست واقعی برنامه در رویداد کلیک یکی از منوها فرم 4 را فراخوانی نمائید تا ببینید که فرم نمایش داده میشود ( برای راحتی حالت state فرمهای 3 و 4 را از maximized به normal تغییر دهید

morteza_1234m
جمعه 25 اردیبهشت 1388, 00:25 صبح
دوست عزیز منکل برنامه رو از اول ساختم تا اینجا هم خوب پیش رفته ولی این بار که دیگه من از Panel استفاده نکردم که به این مشکل بر خوردم
من از یک Tabcontrol استفاده کردم به شکل زیر که مجبور شدم یک دکمه به آن اضافه کنم که می بیند که قبل از اجرا در تصویر هست مانند شکل untitled ولی مانند Untitled1 نمایش داده میشه
دیگه دیونه شدم با این اوضاع بسیار مزخرف Visual studio 2005

rnm123
جمعه 25 اردیبهشت 1388, 00:46 صبح
دوست عزیز . groupBox شما خاصیت enable آن روی false قرار دارد ( به احتمال زیاد ) و یان باعث شده کلیه کنتلهای داخل آن غیر فعال شود . دکمه جدیدی را هم که قرار داده اید یا خاصیت visible آن false است یا در کد فرم مکان قرارگیری آنرا تغییر می دهید . اگر کد فرم راارسال کنید راحتتر می توانم بگویم مشکل چیست

morteza_1234m
جمعه 25 اردیبهشت 1388, 01:12 صبح
public partial class frmManager : Form
{
public frmManager()
{
InitializeComponent();
}

private void frmManager_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'paperListDataSet.emp' table. You can move, or remove it, as needed.
//this.empTableAdapter.Fill(this.paperListDataSet.em p);
SqlConnection con = new SqlConnection("server=(local);integrated security=SSPI;database=PaperList");
int day1;
int month1;
int year1;
for (day1 = 1; day1 <= 31; day1++)
{
comboBox1.Items.Add(day1);
}
for (month1=1; month1 <= 12; month1++)
{
comboBox2.Items.Add(month1);
}
for (year1 = 1357; year1 <= 1500; year1++)
{
comboBox3.Items.Add(year1);
}
groupBox1.Enabled = false;
}

private void label7_Click(object sender, EventArgs e)
{

}

private void tabPage1_Click(object sender, EventArgs e)
{

}

private void button5_Click(object sender, EventArgs e)
{
this.Dispose();
}

private void button4_Click(object sender, EventArgs e)
{
if (groupBox1.Enabled == false)
{

groupBox1.Enabled = true;
button3.Enabled = false;
textBox1.Enabled = false;
textBox2.Enabled = false;
textBox3.Enabled = false;
textBox4.Enabled = false;
textBox5.Enabled = false;
textBox6.Enabled = false;
textBox7.Enabled = false;
textBox8.Enabled = false;
textBox9.Enabled = false;
textBox10.Enabled = false;
textBox11.Enabled = false;
comboBox1.Enabled = false;
comboBox2.Enabled = false;
comboBox3.Enabled = false;
button1.Enabled = false;
button2.Enabled = false;

}
else
{
groupBox1.Enabled = false;
button3.Enabled = true;
textBox1.Enabled = true;
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
textBox5.Enabled = true;

textBox6.Enabled = true;
textBox7.Enabled = true;
textBox8.Enabled = true;
textBox9.Enabled = true;
textBox10.Enabled = true;
textBox11.Enabled = true;
comboBox1.Enabled = true;
comboBox2.Enabled = true;
comboBox3.Enabled = true;
button1.Enabled = true;
button2.Enabled = true;

}

}

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
textBox11.Enabled = false;

textBox5.Enabled = true;
textBox5.Focus();
}

private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
textBox11.Enabled = true ;
textBox11.Focus();
textBox5.Enabled = false;
}

private void button3_Click(object sender, EventArgs e)
{
string str1 = "INSERT INTO emp(name,family,[father name],shsh,address,tel,[loc birth],salary,title,id ,[user id],birth,pic) VALUES (@name, @family,@fathername,@shsh,@address,@tel,@locbirth, @salary,@title,@id1,@userid ,@birth,@pic)";
SqlConnection con = new SqlConnection("server=.;integrated security=True;database=PaperList");

try
{

con.Open();
SqlCommand cmd = new SqlCommand(str1, con);
cmd.Parameters.AddWithValue("@name",textBox1.Text);
cmd.Parameters.AddWithValue("@family",textBox2.Text);
cmd.Parameters.AddWithValue("@fathername",textBox3.Text);
cmd.Parameters.AddWithValue("@shsh",Convert.ToInt64(textBox4.Text));
cmd.Parameters.AddWithValue("@id1",Convert.ToInt64(textBox5.Text));
cmd.Parameters.AddWithValue("@address",textBox10.Text);
cmd.Parameters.AddWithValue("@tel",textBox9.Text);
cmd.Parameters.AddWithValue("@locbirth",textBox7.Text);
cmd.Parameters.AddWithValue("@userid", textBox11.Text);
cmd.Parameters.AddWithValue("@salary",Convert.ToInt64(textBox6.Text));
cmd.Parameters.AddWithValue("@title",textBox8.Text);
string birthfield;
birthfield = comboBox3.Text +"/" + comboBox2.Text +"/" + comboBox1.Text;



cmd.Parameters.AddWithValue("@birth",birthfield);

Class1 cls2 = new Class1();


PictureBox Pic = new PictureBox();
Pic.Size = new System.Drawing.Size(220, 190);
Pic.Cursor = System.Windows.Forms.Cursors.No;
Pic.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
Pic.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
Pic.BackgroundImage = System.Drawing.Image.FromFile(cls2.savepathpic());

MemoryStream ms = new MemoryStream();


byte[] arrPic = ms.GetBuffer();
ms.Close();
cmd.Parameters.AddWithValue("@pic", arrPic);







cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("اطلاعات وارد شد");
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}

}

private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openf = new OpenFileDialog();
openf.Title = "انتخاب عکس";
openf.Filter = "All files (*.*)|*.*|JPEG files (*.jpg)|*.jpg|GIF files (*.gif)|*.gif|" +
"PNG files (*.png)|*.png|BMP files (*.bmp)|*.bmp";
if (openf.ShowDialog ()== DialogResult.OK)
{
PictureBox Pic = new PictureBox();
Pic.Size = new System.Drawing.Size(220,190);
Pic.Cursor = System.Windows.Forms.Cursors.No;
Pic.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
Pic.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
Pic.BackgroundImage = System.Drawing.Image.FromFile(openf.FileName);
flowLayoutPanel1.Controls.Add(Pic);
Class1 cls1 = new Class1();
cls1.savepathpic(openf.FileName);

}

}

private void button7_Click(object sender, EventArgs e)
{



}
}
}نه مشکل من groupbox نیست دوست عزیز اون همین جوریه و باید همینن جوری باشه
منظورم دکمه ای بود که اسمش button 7 و قبل از اجرا هستش ولی بعد از اجرا ناپدید میشه در حالی که visable اش هم true است و فرقی هم نمی کنه که کجای tabcontrol باشه
من خودم احساس می کنم هر گاه نیاز میشه که یک کلاس به پروژه اضافه کنم و می کنم دیگر هیچ شی جدید در فرم ها نمایش داده نمی شه البته این یک حدس هست

rnm123
جمعه 25 اردیبهشت 1388, 01:16 صبح
نه . این حرف شما درست نیست . فکر نکنم به این موضوع ربطی داشته باشد . ایراد از جای دیگر است .ای کاش اگر موردی نداشته باشد کد خود را در پست قرار دهید تا آنرا با هم بررسی کنیم .

morteza_1234m
جمعه 25 اردیبهشت 1388, 20:32 عصر
دوست عزیز دقیقا مربوط به کلاسم بود
یک متد از نوع String داشتم که اشتباها مقدار INT برمی گردونندم و خود VS2005 هم هیچ اخطاری نمی داد
پس از این که این قسمت رو درست کردم و REBUILD کردم درست شد