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

نام تاپیک: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

  1. #1
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,643

    تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    به نام خدا
    سلام؛
    در اینجا می خوایم یک فرم رو تبدیل کنیم به Child Control و اون رو در یک Panel که یک Container Control هستش در یک فرم دیگر نمایش دهیم، و برای مثال یک خصوصیت داریم که مقدار اون رو در فرم والد یا Parent فراخوانی می کنیم:

    این تصویر و کدهای فرمی هست که می خوایم شیء فرزند بشه:

    Child Form.jpg


    Public Class Form1
    Private Expr As New Dictionary(Of String, String)


    Public Property SelectedItem() As KeyValuePair(Of String, String)
    Get
    Return Me.ComboBox1.SelectedItem
    End Get
    Set(ByVal value As KeyValuePair(Of String, String))
    Me.ComboBox1.SelectedItem = value
    End Set
    End Property


    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    With Expr
    .Add("Item1", "Item1 Is selected.")
    .Add("Item2", "Item2 Is selected.")
    .Add("Item3", "Item3 Is selected.")
    .Add("Item4", "Item4 Is selected.")
    End With
    With Me.ComboBox1.Items
    .Clear()
    For Each Item As KeyValuePair(Of String, String) In Expr
    .Add(Item)
    Next
    End With
    Me.ComboBox1.SelectedIndex = 0
    End Sub
    Private Sub ComboBox1_DrawItem(sender As System.Object, e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem
    Dim G As Graphics = e.Graphics
    Dim V As String = CType(Me.ComboBox1.Items(e.Index), KeyValuePair(Of String, String)).Key
    e.DrawBackground()
    G.DrawString(V, e.Font, New SolidBrush(e.ForeColor), 2, e.Bounds.Y + 2)
    End Sub


    End Class


    و این هم فرم اصلی و کد فراخوانی فرم اول در یک Panel:

    Parent Form.jpg


    Public Class HelloWorld


    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    With Form1.SelectedItem
    MsgBox(String.Format("Selected Item Key is {0} and Value is: {1}", .Key, .Value))
    End With
    End Sub


    Private Sub HelloWorld_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    With Form1
    .TopLevel = False
    .WindowState = FormWindowState.Maximized
    .FormBorderStyle = Windows.Forms.FormBorderStyle.None
    .Visible = True
    End With
    Me.Panel1.Controls.Add(Form1)
    End Sub
    End Class



    این هم حالت RunTime:

    Parent Form RunTime.jpg
    آخرین ویرایش به وسیله ROSTAM2 : یک شنبه 26 تیر 1401 در 18:20 عصر

  2. #2

    نقل قول: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    سلام

    از روشی که گفتین استفاده کردم . خوب بود و درست عمل کرد.

    اما وقتی که کامبوهای خودم که در کدنویسی با اتصال بانک پر میشند . درست کار نمیکرد و اطلاعات کامبو را Null برگشت میداد.

    کدها را عوض کردم و برای تکست باکس و چک باکس هم اجرا کردم و باز هم Null برگشت میداد . چک باکس را کلا False برگشت میده .

    کدهای فرم دوم
    Public Property strValSat() As Boolean
    Get
    Return Me.ChkBxSat.Checked
    End Get
    Set(ByVal value As Boolean)
    Me.ChkBxSat.Checked = value
    End Set
    End Property
    Public Property strValPri() As String
    Get
    Return Me.TxtBxSPri.Text
    End Get
    Set(ByVal value As String)
    Me.TxtBxSPrii.Text = value
    End Set
    End Property
    Public Property ValYet() As KeyValuePair(Of String, String)

    Get

    Return Me.CmbBxYet.SelectedValue

    End Get

    Set(ByVal value As KeyValuePair(Of String, String))

    Me.CmbBxYet.SelectedValue = value

    End Set

    End Property


    کذهای فرم اول
    With Frm2.ValYet
    MsgBox(String.Format("Selected Item Key is {0} and Value is: {1}", .Key, .Value))
    End With



    حتی تکست باکس و چک باکس هم مقدار درست را برگشت نداده.

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

  3. #3

    نقل قول: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    سلام

    از روشی که گفتین استفاده کردم . خوب بود و درست عمل کرد.

    اما وقتی که کامبوهای خودم که در کدنویسی با اتصال بانک پر میشند . درست کار نمیکرد و اطلاعات کامبو را Null برگشت میداد.

    کدها را عوض کردم و برای تکست باکس و چک باکس هم اجرا کردم و باز هم Null برگشت میداد . چک باکس را کلا False برگشت میده .

    کدهای فرم دوم
    Public Property strValSat() As Boolean
    Get
    Return Me.ChkBxSat.Checked
    End Get
    Set(ByVal value As Boolean)
    Me.ChkBxSat.Checked = value
    End Set
    End Property
    Public Property strValPri() As String
    Get
    Return Me.TxtBxSPri.Text
    End Get
    Set(ByVal value As String)
    Me.TxtBxSPrii.Text = value
    End Set
    End Property
    Public Property ValYet() As KeyValuePair(Of String, String)
    Get
    Return Me.CmbBxYet.SelectedValue
    End Get
    Set(ByVal value As KeyValuePair(Of String, String))
    Me.CmbBxYet.SelectedValue = value
    End Set
    End Property


    کذهای فرم اول
    With Frm2.ValYet
    MsgBox(String.Format("Selected Item Key is {0} and Value is: {1}", .Key, .Value))
    End With



    حتی تکست باکس و چک باکس هم مقدار درست را برگشت نداده.

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

  4. #4
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,643

    نقل قول: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    این خصوصیتهایی که مقادیر چک باکس و تکست باکس رو می گیرن:



    Public Property Checked() As String
    Get
    Return Me.CheckBox1.Checked
    End Get
    Set(ByVal value As String)
    Me.CheckBox1.Checked = value
    End Set
    End Property


    Public Property Value() As String
    Get
    Return Me.TextBox1.Text
    End Get
    Set(ByVal value As String)
    Me.TextBox1.Text = value
    End Set
    End Property


    و این هم فراخوانی مقادیر:

    Untitled.jpg

    دوباره امتحان کن با فرمهای جدید.

  5. #5
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,643

    نقل قول: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    اما وقتی که کامبوهای خودم که در کدنویسی با اتصال بانک پر میشند . درست کار نمیکرد و اطلاعات کامبو را Null برگشت میداد.
    اینکه اشیاء به بانک اطلاعاتی متصلن درست، مهم اینه که اشیاء مقدار رو بگیرن که بتونن مقدار برگردونن.

  6. #6

    نقل قول: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    سلام
    ممنون آقای رستمی
    عالی بود . مشکل برگردوندن مقدارها حل شد. مرسی

    چند روز هست مزاحم شما میشم . ببحشید حلال کنید
    یه سوال دیگه هم دارم.

    وقتی که فرم دوم را به فرم اول وصل میکنیم . میگیم فوکوس کن به تکست فاکس فلان در فرم دوم . اما هیچ اتفاقی نمیوفته.
    حتی در لود فرم دوم هم ، فوکوس را میگذارم ، اما فوکوس نمیکنه .

    With FrmDev
    .TopLevel = False
    .WindowState = FormWindowState.Maximized
    .FormBorderStyle = Windows.Forms.FormBorderStyle.None
    .Visible = True
    End With
    PnlDev1.Controls.Clear()
    PnlDev1.Controls.Add(FrmDev)
    PnlDev1.Visible = True
    FrmDev.TxtBxSPri.Focus()


    حتی فوکوس را آوردن داخل حلقه With باز هم اتفاقی نیوفتاد .
    زحمت میکشید راهنمایی کنید.
    ممنون

  7. #7
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,643

    نقل قول: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    وقتی که فرم دوم را به فرم اول وصل میکنیم . میگیم فوکوس کن به تکست فاکس فلان در فرم دوم . اما هیچ اتفاقی نمیوفته.
    حتی در لود فرم دوم هم ، فوکوس را میگذارم ، اما فوکوس نمیکنه .
    سلام.
    از رویداد Shown از خود فرم استفاده کن:

    Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
    Me.TextBox1.Focus()
    End Sub

  8. #8

    نقل قول: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    سلام آقای رستمی
    سوال اول
    با روش شما فرمها را در فرم اصلی لود کردم . حالا موقع بستن فرم ارور میده. شکل زیر را ببینید.
    111.jpg

    سوال دوم
    وقتی مقدار کامبوباکس را با کلیک کردن و از لیست انتخاب میکنم ، مقدارها را میگیره و بر میگردونه . اما اگه مقدارهای داخل کامبوباکس ها را دستی و به وسیله صفحه کلید وارد کنیم ، مقدارها را صفر برمیگردونه .(مقدارهایی که در لیست کامبوباکس موجود هست) بابت این مورد باید چیکار کرد ؟

    لطفا راهنمایی کنید
    ممنون

  9. #9
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,643

    نقل قول: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    سلام
    برای CLOSE که گیرش کدهای مدیرت نشده ذکر کرده که دستوراتی هست که باید کارشون تموم شه تا فرم بتونه بسته بشه. همه دستوراتی که باهاش کار می کنی رو چک کن.

    در مورد کامبو باکس هم SelectedItem رو خروجی بگیر.

  10. #10

    نقل قول: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    سلام
    برای CLOSE که گیرش کدهای مدیرت نشده ذکر کرده که دستوراتی هست که باید کارشون تموم شه تا فرم بتونه بسته بشه. همه دستوراتی که باهاش کار می کنی رو چک کن.

    ممنون جواب دادید . از شما سپاسگزارم
    آخر کار یک تایمر دارم برای پروگرس بار . شاید احتمالا کار اون تموم نشده که ارور میده .

    قبل از اینکه کلید خروج روشن بشه این خط را اضافه کردم . درست شد
    Threading.Thread.Sleep(3000)



    در مورد کامبو باکس هم SelectedItem رو خروجی بگیر
    SelectedItem گذاشتم خطا نوع داده ، تو پروپرتی گرفت .
    آخرین ویرایش به وسیله prolog96 : پنج شنبه 30 تیر 1401 در 20:37 عصر

  11. #11
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,643

    نقل قول: تبدیل فرم به یک کنترل یا شیء فرزند و نمایش آن در یک Container Control مثل Panel

    خوب ببین دیتا تایپی که به آیتم های کامبوباکس دادی چی هست دیتاتایپ خصوصیت رو هم همون تعیین کن.

تاپیک های مشابه

  1. سوال: ساخت Control Panel با #C
    نوشته شده توسط Peresident Kiumars در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: پنج شنبه 08 فروردین 1392, 11:51 صبح
  2. سوال: حذف اسم نرم افزار از Control Panel
    نوشته شده توسط morteza271 در بخش تولید و توسعه برنامه های Setup و Install
    پاسخ: 1
    آخرین پست: سه شنبه 26 بهمن 1389, 15:54 عصر
  3. سوال: من ActiveX Control Test Container ندارم؟!!
    نوشته شده توسط feri88 در بخش برنامه نویسی با MFC و ++Visual C
    پاسخ: 0
    آخرین پست: جمعه 13 فروردین 1389, 14:02 عصر
  4. ساخت Control Panel با PHP ؟
    نوشته شده توسط cybercoder در بخش PHP
    پاسخ: 8
    آخرین پست: یک شنبه 04 بهمن 1383, 01:06 صبح

برچسب های این تاپیک

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

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