PDA

View Full Version : سوال: دسترسی به تکست باکس



merlin425
جمعه 20 اردیبهشت 1392, 13:27 عصر
سلام دوستان عزیز میخواستم بپرسم چطوری میتونم مثلا تکس باکسی که در فرم 2 هست از فرم یک بهش
دسترسی داشته باشم ممنون

azgn32
جمعه 20 اردیبهشت 1392, 14:07 عصر
سلام:چشمک:
خاصیت Modifiers تکست باکس را در فرم 2 برابر public قرار بده


public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Form2 frm2=new Form2();
private void button1_Click(object sender ,EventArgs e)
{
frm2.Show();
}

private void button2_Click(object sender ,EventArgs e)
{
frm2.textBox1.Text="AzGn32";
}
}

merlin425
جمعه 20 اردیبهشت 1392, 15:55 عصر
ممنون ولی من به صورت ایستا میخوام یعنی نمونه سازی از فرم نکنه اون فرمی که قراره بهش دسترسی داشته باشم فرم اصلی برنامه هست پس قبل از این فرم لود شده بازم ممنون

merlin425
جمعه 20 اردیبهشت 1392, 16:44 عصر
روش دیگه ای میشه بگین منتظرم

ztx4
جمعه 20 اردیبهشت 1392, 19:40 عصر
منظورت رو از استفاده از TextBox یی که هنوز Load نشده متوجه نشدم.
می تونی یه متغییر استاتیک توی فرم دوم تعریف کنی و در فرم اول اون رو به صورت استاتیک بخونی و بهش مقدار بدی.

danialafshari
جمعه 20 اردیبهشت 1392, 20:08 عصر
سلام دوست عزیز
بسیار توضیح داده شده شما باید یک کلاس بسازید و یک متغیر static قرار بدید و ازش استفاده کنید
قبلا هم قرارش داد ولی متاسفانه شخص محترم بعد از جواب گرفتن تاپیک رو حذف کرد و مانع استفاده دیگران شد
موفق باشید

fool66
جمعه 20 اردیبهشت 1392, 20:20 عصر
اگه می تونی مقدار رو ارسال کنی بین فرم ها
public Form1(string a)


string a = textbox1.text;
Form1 frm = new Form(a);

azgn32
شنبه 21 اردیبهشت 1392, 11:55 صبح
سلام
یک نمونه پروژه برات آپ میکنم104020

zmousavi
شنبه 21 اردیبهشت 1392, 13:12 عصر
فرض کن form1 فرم اصلی وform2 فرم فرعی هست در form2 :
public form1 f1=null
وهنگامی که در فرم form1 میخواهی form2 را نمونه سازی کنی دستورات زیر:
form2 f2=new form2()
f2.f1=this
.....
در ضمن textbox داخل form1 را خاصیت modifier =public

_behnam_
شنبه 21 اردیبهشت 1392, 13:50 عصر
سلام.
دوستان نمونه با نمونه هایی شمارو راهنمایی کردن که اکثر درست بود اما اصولی تر از همه راه های آقای danialafshari (http://barnamenevis.org/member.php?68467-danialafshari) بود که یک کلاس ایستا بسازید و فرم هارو درون اون به صورت ایستا قرار دهید. روش آقایfool66 (http://barnamenevis.org/member.php?236758-fool66) هم تاحدودی درست بود اما اگر به جای رشته پارامتری از نوع فرم اصلی قرار بدهید راهی خوب و اصولی برای نیاز شما میشود.
نمونه کد های زیر رو نگاه کنید متوجه منظور بنده میشید.
104028

موفق باشید./

erfan_urchin
شنبه 21 اردیبهشت 1392, 13:57 عصر
سلام دوست عزیز
بسیار توضیح داده شده شما باید یک کلاس بسازید و یک متغیر static قرار بدید و ازش استفاده کنید
قبلا هم قرارش داد ولی متاسفانه شخص محترم بعد از جواب گرفتن تاپیک رو حذف کرد و مانع استفاده دیگران شد
موفق باشید

دانیال عزیز من اون موقع جواب سوالم رو تو یه تاپیک دیگه که عین تاپیک من بود پیدا کردم و لازم ندیدم که دوتا تاپیک عین هم وجود داشته باشه. بخاطر همین تاپیک خودمو حذف کردم (دقیقا برابر قوانین سایت عمل کردم: در صورت وجود موضوع مورد نظر در آرشیو تاپیک ، از ایجاد تاپیک جدید با همان موضوع خودداری کنید)
merlin425 هم اگه سرچ میکردن جواشونو تو آرشیو تاپیک ها پیدا میکردن
خواستم بگم اشتباه فکر میکنی که من تا جوابم رو گرفتم در جا تاپیکو حذف کردم. من تا الان 16 تاپیک ایجاد کردم و سوال پرسیدم و جوابشم گرفتم اما حذفش نکردم چون دلیلی نداشت حذف کنم
اما اون تاپیک که حذف کردم یه جورایی مخالف قوانین بود :چشمک:

merlin425
شنبه 21 اردیبهشت 1392, 14:04 عصر
خیلی ازتون ممنونم

merlin425
شنبه 21 اردیبهشت 1392, 14:26 عصر
من میخوام با سی شارپ کد Restore رو بنویسم ارور میده
این کدمه

try
{
string s = @"C:\New\1392-2-13 Time 1-9-48\SabaNet.bak";

SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("Data Source=victory-pc;Initial Catalog=SabaNet;Integrated Security=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();

//USE [master]; RESTORE DATABASE [" + dbname + "] FROM DISK = N'" + TxtAddress.Text + "' WITH NOUNLOAD, REPLACE, STATS = 10

string query = "USE [master]; RESTORE DATABASE [" + dbname + "] FROM DISK = N'" + s + "'";
cmd.Connection = new SqlConnection("Data Source=victory-pc;Initial Catalog=SabaNet;Integrated Security=True");
cmd.Connection.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
MessageBox.Show("database restore: ok");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

این ارور

Exclusive access could not be obtained because the database is in use.
RESTORE DATABASE is terminating abnormally.
Changed database context to 'master'.

_behnam_
شنبه 21 اردیبهشت 1392, 14:32 عصر
دوست عزیز لطفا هر سوال رو در تاپیک جدا بپرسید هم تاپیت مخصوص یک سوال میمونه و هم خودتون زودتر به نتیجه میرسید.



موفق باشید./