نمایش نتایج 1 تا 11 از 11

نام تاپیک: استفاده از یک فرم در فرمی دیگر

  1. #1

    استفاده از یک فرم در فرمی دیگر

    با سلام

    من می خواهم از با کلیک کردن یک botton در یک فرم ، فرمی دیگر برایم باز شود که می شود اما هر کاری می کنم نمی تونم مثلاٌ یک botton در فرم دوم ایجاد کنم تعریف botton انجام شده و بعد از اینکه مثلا وارد می کنم
    botton1.Show();
    نشان داده نمی شود با اینکه فرم با همین دستور نشان داده می شود. :roll:

    با تشکر

  2. #2
    کاربر دائمی آواتار Mahdavi
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    ایران - میگن تهرون
    پست
    606
    دوست عزیز احتمالا منظور شما دستور
    form2.show();

    البته شما قبلش باید یه object از اون بسازی . فرض کن فروم دوم شما form2 باشه :

    form2 fr = new form2();
    fr.show();

  3. #3
    با سلام

    ببخشید که وقتتان را می گیرم اما من آبجکت سازی نکردم ولی فرم نشان داده میشه من اینطوری نوشتم:
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;

    namespace WindowsApplication6
    {
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.Button button1;
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.Container components = null;

    public Form1()
    {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent();

    //
    // TODO: Add any constructor code after InitializeComponent call
    //
    }

    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null)
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    }

    #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
    this.button1 = new System.Windows.Forms.Button();
    this.SuspendLayout();
    //
    // button1
    //
    this.button1.Location = new System.Drawing.Point(72, 104);
    this.button1.Name = "button1";
    this.button1.Size = new System.Drawing.Size(144, 48);
    this.button1.TabIndex = 0;
    this.button1.Text = "Click here to open new form";
    this.button1.Click += new System.EventHandler(this.button1_Click);
    //
    // Form1
    //
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(292, 273);
    this.Controls.AddRange(new System.Windows.Forms.Control[] {
    this.button1});
    this.Name = "Form1";
    this.Text = "Form1";
    this.ResumeLayout(false);

    }
    #endregion

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
    Application.Run(new Form1());
    }

    private void button1_Click(object sender, System.EventArgs e)
    {
    myform();
    }
    public void myform()
    {
    Form form2=new Form();
    Button button2=new Button();
    form2.Show();
    button2.Show();
    }
    }
    }


    اما اون button2 در form2 نمایش داده نمیشه حالا با توجه به گفته های شما که خیلی هم منطقی به نظر میرسه من باید کجا آبجکت سازی کنم؟(ببخشید چون تا حالا تو محیط ویژوال کار نکردم)

    با تشکر فراوان

  4. #4
    کاربر دائمی آواتار Mahdavi
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    ایران - میگن تهرون
    پست
    606
    دوست عزیز دلیل خاصی داره که میخواهید botton را خودتان در زمان اجرا بسازید ؟؟
    اگه اینطور نیست خوب تو میحط design‌یک فرم ساخته و یه دکمه رو اون بزارید.

  5. #5
    این جوری


    Form1 f1=new Form1();
    Button b = new Button();
    f1.Controls.Add(b);
    f1.Show();

  6. #6
    ممنون از همگی دوستان

    هر دو راه رو امتحان می کنم

    باز هم ممنون

  7. #7

    نمایش برنامه

    نقل قول نوشته شده توسط Mahdavi
    دوست عزیز احتمالا منظور شما دستور
    form2.show();

    البته شما قبلش باید یه object از اون بسازی . فرض کن فروم دوم شما form2 باشه :

    form2 fr = new form2();
    fr.show();
    درود و صد بدرود بر مردمان ایران زمین

    استاد روشی که شما در بالا گفتید درسته اما یک اشکال رو ایجاد می کنه اون هم وقتی فرم جدید باز می شه در پایین تول بارز ویندوز دوتا گذینه از برنامه نمایش داده می شه یعنی دوتا از این برنامه بازه و در حال اجرا ، منظورم رو می فهمید حال اگه بخواهیم این طور نباشه چه کار باید کرد؟ ( مثل وقتی که از حالت MDI استفاده می کنیم)

  8. #8
    دوتا راه داره
    1. حالت درستش اینه (فقط حالت MDI ) که فرم اول رو به عنوان parent فرم دوم معرفی کنی:
    form2.MdiParent = this;


    2. تو قسمت design مشخصه showintaskbar رو برداری

  9. #9
    سلام
    form2 fr = new form2();
    fr.show();
    این درست است اما وقتی که برنامه دارای فرم های زیادی باشد و در هر فرم 2 دگمه برای جلو و عقب داشته باشیم یعنی یرای دگمه NEXT فرم 2 بخواهیم فرم 3 نمایش داده شود و برای BACK فرم 3 بخواهیم فرم 2 نمایش داده شود و اگر هر بار شیء را تعریف کنیم به نظر خوب نمی آید راه بهتری نیست ؟

  10. #10
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566
    خوب از فرم استفاده نکن !!!
    اگه میشه از Panel استفاده کن؟؟؟؟

  11. #11
    یه راهش هم اینه
    new form2().show();l

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •