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

نام تاپیک: مشکل با هنگ کردن برنامه سی شارپ

  1. #1

    مشکل با هنگ کردن برنامه سی شارپ

    به نظرتون مشکل کد زیر چیه ؟
    الان حدود 350 رکورد هست داخل دیتاگرید - هنگه هنگ هم نمیشه - چند لحظه هنگ میکنه


    using System;
    using System.Data;
    using System.Drawing;
    using System.Windows.Forms;
    using DevComponents.DotNetBar;
    using Transport.BLL;
    namespace Transport
    {
    public partial class transport_in : Office2007Form
    {
    public transport_in()
    {
    InitializeComponent();
    }


    private void clearAllLabels()
    {
    lbl_transport_type.Text = "---";
    lbl_transport_peyment.Text = "---";
    lbl_transport_number.Text = "---";
    lbl_transport_date.Text = "---";
    lbl_transport_weight.Text = "---";
    lbl_transport_total_price.Text = "---";
    lbl_transport_agency_portion.Text = "---";
    lbl_transport_description.Text = "---";
    lbl_transport_import_date.Text = "---";
    lbl_transport_max_weight.Text = "---";
    lbl_transport_base_price.Text = "---";
    lbl_transport_addition_weight.Text = "---";
    lbl_transport_comany_agency_portion.Text = "---";
    lbl_transport_company_portion.Text = "---";
    lbl_company_name.Text = "---";
    }


    private void setLabelsContent()
    {
    try
    {
    clearAllLabels();
    if (dgv_transport.Rows.Count > 0)
    {
    lbl_transport_id.Text = dgv_transport.Rows[dgv_transport.CurrentRow.Index].Cells[0].Value.ToString();

    lbl_transport_type.Text = dgv_transport.Rows[dgv_transport.CurrentRow.Index].Cells[6].Value.ToString();
    lbl_transport_peyment.Text = dgv_transport.Rows[dgv_transport.CurrentRow.Index].Cells[5].Value.ToString();
    lbl_company_name.Text = dgv_transport.Rows[dgv_transport.CurrentRow.Index].Cells[4].Value.ToString();
    lbl_transport_number.Text = dgv_transport.Rows[dgv_transport.CurrentRow.Index].Cells[2].Value.ToString();
    lbl_transport_date.Text = dgv_transport.Rows[dgv_transport.CurrentRow.Index].Cells[1].Value.ToString();
    lbl_transport_weight.Text = dgv_transport.Rows[dgv_transport.CurrentRow.Index].Cells[12].Value.ToString();
    lbl_transport_total_price.Text =special_class.ToFormattedThousands(dgv_transport. Rows[dgv_transport.CurrentRow.Index].Cells[7].Value.ToString());
    lbl_transport_agency_portion.Text = special_class.ToFormattedThousands(dgv_transport.R ows[dgv_transport.CurrentRow.Index].Cells[9].Value.ToString());
    lbl_transport_description.Text = dgv_transport.Rows[dgv_transport.CurrentRow.Index].Cells[14].Value.ToString();
    lbl_transport_import_date.Text = dgv_transport.Rows[dgv_transport.CurrentRow.Index].Cells[11].Value.ToString();
    lbl_transport_max_weight.Text = dgv_transport.Rows[dgv_transport.CurrentRow.Index].Cells[17].Value.ToString();
    lbl_transport_base_price.Text = special_class.ToFormattedThousands(dgv_transport.R ows[dgv_transport.CurrentRow.Index].Cells[18].Value.ToString());
    lbl_transport_addition_weight.Text = special_class.ToFormattedThousands(dgv_transport.R ows[dgv_transport.CurrentRow.Index].Cells[19].Value.ToString());
    lbl_transport_comany_agency_portion.Text = special_class.ToFormattedThousands(dgv_transport.R ows[dgv_transport.CurrentRow.Index].Cells[20].Value.ToString());
    lbl_transport_company_portion.Text = special_class.ToFormattedThousands(dgv_transport.R ows[dgv_transport.CurrentRow.Index].Cells[10].Value.ToString());
    }
    else
    {
    clearAllLabels();
    }


    if (dgv_transport.Rows.Count<1)
    {
    clearAllLabels();
    }
    }
    catch (Exception)
    {
    clearAllLabels();
    }

    }


    private void addSeperatorToNumericColumns()
    {
    dgv_transport.Columns[9].DefaultCellStyle.Format = "###,###,###,###,###,###";
    dgv_transport.Columns[11].DefaultCellStyle.Format = "###,###,###,###,###,###";
    dgv_transport.Columns[20].DefaultCellStyle.Format = "###,###";
    }


    // متد پر کردن اطلاعات جدول بارنامه ها
    public void FillDataGrid()
    {
    DataTable ResultTable = bll_transport.SelectAllRecord("tbl_transport_in");
    dgv_transport.DataSource = ResultTable;


    dgv_transport.Columns[0].HeaderText = "شناسه";
    dgv_transport.Columns[1].HeaderText = "تاریخ بارنامه";
    dgv_transport.Columns[2].HeaderText = "شماره بارنامه";
    dgv_transport.Columns[3].HeaderText = "شناسه شرکت";
    dgv_transport.Columns[4].HeaderText = "شرکت";
    dgv_transport.Columns[5].HeaderText = "نوع پرداخت";
    dgv_transport.Columns[6].HeaderText = "نوع بارنامه";
    dgv_transport.Columns[7].HeaderText = "مبلغ بارنامه";
    dgv_transport.Columns[8].HeaderText = "کد شهر";
    dgv_transport.Columns[9].HeaderText = "سهم نمایندگی";
    dgv_transport.Columns[10].HeaderText = "سهم شرکت";
    dgv_transport.Columns[11].HeaderText = "تاریخ ثبت";
    dgv_transport.Columns[12].HeaderText = "وزن";
    dgv_transport.Columns[13].HeaderText = "کرایه حمل";
    dgv_transport.Columns[14].HeaderText = "توضیحات";
    dgv_transport.Columns[15].HeaderText = "آیا نماینده شهرستان است؟";
    dgv_transport.Columns[16].HeaderText = "سهم کنونی نماینده شهرستان";
    dgv_transport.Columns[17].HeaderText = "حداکثر وزن قیمت ثابت";
    dgv_transport.Columns[18].HeaderText = "قیمت پایه برای وزن ثابت";
    dgv_transport.Columns[19].HeaderText = "قیمت برای هر کیلو بار اضافه";
    dgv_transport.Columns[20].HeaderText = "سهم شرکت برای ارسال شهرستان";




    dgv_transport.Columns[0].Visible = false;
    dgv_transport.Columns[3].Visible = false;
    dgv_transport.Columns[8].Visible = false;
    dgv_transport.Columns[12].Visible = false;
    dgv_transport.Columns[13].Visible = false;
    dgv_transport.Columns[14].Visible = false;
    dgv_transport.Columns[15].Visible = false;
    dgv_transport.Columns[16].Visible = false;
    dgv_transport.Columns[17].Visible = false;
    dgv_transport.Columns[18].Visible = false;
    dgv_transport.Columns[19].Visible = false;
    dgv_transport.Columns[20].Visible = false;


    special_class.setRowNumber(dgv_transport);
    }


    private void transport_in_Load(object sender, EventArgs e)
    {
    FillDataGrid();
    }


    private void btn_back_Click(object sender, EventArgs e)
    {
    this.Close();
    }


    private void btn_new_Click(object sender, EventArgs e)
    {
    transport_in_edit frm_transport_in_edit = new transport_in_edit();
    frm_transport_in_edit.ShowDialog();
    }


    private void btn_edit_Click(object sender, EventArgs e)
    {

    }


    private void transport_in_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.Escape)
    {
    this.Close();
    }
    if (e.KeyCode==Keys.F3)
    {
    txt_search.Focus();
    }
    }


    private void dgv_transport_CellEnter(object sender, DataGridViewCellEventArgs e)
    {
    setLabelsContent();
    }


    private void transport_in_Activated(object sender, EventArgs e)
    {
    FillDataGrid();
    }


    private void btn_delete_Click(object sender, EventArgs e)
    {




    if (dgv_transport.Rows.Count > 0)
    {
    try
    {
    string Transport_ID = lbl_transport_id.Text;






    if (FMessegeBox.FarsiMessegeBox.Show("آیا از حذف اطلاعات این بارنامه مطمئن هستید ؟", "تایید حذف اطلاعات", FMessegeBox.FMessegeBoxButtons.YesNo, FMessegeBox.FMessegeBoxIcons.Question) == DialogResult.Yes)
    {


    string Query = "DELETE FROM tbl_transport WHERE transport_id=" + Transport_ID;


    bool result = bll_transport.RunQuery(Query);
    if (result)
    {
    lblMessage.Text = "اطلاعات با موفقيت حذف شد";
    lblMessage.ForeColor = Color.Green;
    }
    else
    {
    lblMessage.Text = "خطا در حذف اطلاعات";
    lblMessage.ForeColor = Color.Red;
    }
    FillDataGrid();
    }
    }
    catch (Exception)
    {
    lblMessage.Text = "لطفاً يک رکورد را براي حذف انتخاب کنيد";
    lblMessage.ForeColor = Color.Red;
    }
    }
    }


    private void txt_search_TextChanged(object sender, EventArgs e)
    {
    clearAllLabels();
    string SQLWHERE = string.Format(" WHERE (peyment_type like '%{0}%' OR company_name like '%{0}%' OR transport_number like '%{0}%' OR transport_date like '%{0}%' OR transport_weight like '%{0}%' OR transport_total_price like '%{0}%' OR agency_portion like '%{0}%' OR transport_description like '%{0}%' OR trasport_import_date like '%{0}%' ) AND tbl_transport.transport_type='ورودی' ", txt_search.Text);

    string SQLQuery = "SELECT tbl_transport.transport_id,tbl_transport.transport _date,tbl_transport.transport_number,tbl_transport .company_id,tbl_company.company_name,tbl_transport .peyment_type,tbl_transport.transport_type,tbl_tra nsport.transport_total_price,tbl_transport.city_id ,tbl_transport.agency_portion,tbl_transport.transp ort_company_portion,tbl_transport.trasport_import_ date,tbl_transport.transport_weight,tbl_transport. transport_price,tbl_transport.transport_descriptio n,tbl_transport.is_city_agency,tbl_transport.curre nt_agency_portion_price,tbl_transport.transport_cu rrent_max_fix_weight,tbl_transport.transport_curre nt_base_price,tbl_transport.transport_current_addi tion_price,tbl_transport.transport_current_agency_ portion " +
    " FROM tbl_company INNER JOIN tbl_transport ON tbl_company.company_id = tbl_transport.company_id " + SQLWHERE;



    DataTable ResultTable = bll_transport.search_in_transport(SQLQuery);
    dgv_transport.DataSource = ResultTable;
    special_class.setRowNumber(dgv_transport);
    }


    private void dgv_transport_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
    dgv_transport.Columns[10].DefaultCellStyle.Format = "N0";
    dgv_transport.Columns[7].DefaultCellStyle.Format = "N0";
    dgv_transport.Columns[9].DefaultCellStyle.Format = "N0";

    }
    }
    }



  2. #2
    کاربر دائمی آواتار winner1
    تاریخ عضویت
    تیر 1392
    محل زندگی
    خلخال
    پست
    738

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    هرجا که حلقه هست try رو حذف کن فقط با if برنام رو کنترل کن

  3. #3

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    دوست عزیز من همچین حالتی رو ندارم - اگر هم try ای هست بعدش یه if اومده
    کدهای رویداد CellEnter از کنترل DataGridView رو هم پاک کردم ولی فایده نداشت

  4. #4
    کاربر دائمی آواتار mz6488
    تاریخ عضویت
    تیر 1391
    محل زندگی
    قشم
    پست
    429

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    سلام.متد cell formating به اندازه تعداد رکوردها تکرار میشه.از اون ظرف هم به تعداد رکوردها دارید عمل درج شماره ردیف رو انجام میدید.واسه مشکل اولی بهتره که ستون ها رو به صورت غیر کدنویسی طراحی کنید و همونجا هم فرمت سلول رو انتخاب کنید.

  5. #5

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    فرمایشات شما همه درسته ولی اصل مشکل رو پیدا کردم

    فراخونی متد FillDataGrid در رویداد Activated فرم

    نمی دونم چرا چندین و چند بار اتفاق میافته

    حالا مشکل اینه که وقتی کاربر میره یه بارنامه جدید اضافه می کنه و فرم اضافه کردن رو میبنده ، این دیتاگرید اتوماتیک آپدیت نمیشه

    نمی دونم کد فراخوانی متد FillDataGrid که دیتاگرید رو با اطلاعات جدول بارنامه پر می کنه رو توی کدوم رویداد بنویسم الان ؟

    توی Activated که نمیشه چون خیلی تکرار میشه ---- توی Form_load هم نمیشه چون فقط یه بار اتفاق میافته

    نظـــــــــــــــــر شما چیه ؟

  6. #6
    کاربر دائمی آواتار juza66
    تاریخ عضویت
    دی 1389
    محل زندگی
    هفت تپه - 7hill
    پست
    798

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    من برای دیتاگرید صفحه بندی ایجاد کردم، نیازی ندیدم که همه رو یکجا نمایش بدم
    آخرین ویرایش به وسیله juza66 : شنبه 04 آبان 1398 در 16:06 عصر

  7. #7

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    Juza66 عزیز - ببخشید ولی راه حل خوبی نبود - بیشتر تبلیغاتی بود تا راهکاری

  8. #8
    کاربر دائمی آواتار juza66
    تاریخ عضویت
    دی 1389
    محل زندگی
    هفت تپه - 7hill
    پست
    798

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    تبلیغ ؟!!! من !!

    نه بخدا، من فقط خواستم بگم چنین برنامه ای قبلا خودم نوشتم (البته اگر درست حدس زده باشم)

    خواستم ببینید برای دیتاگریدم صفحه بندی کردم البته شما استاد مایی آقایی ابراهیمی قصد بی احترامی یا اذیت کردن نداشتم، آخه لود 350 رکورد فکر کنم زیاد طول بکشه :))
    آخرین ویرایش به وسیله juza66 : شنبه 04 آبان 1398 در 16:07 عصر

  9. #9

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    نه خواهش می کنم عزیز
    دستتون درد نکنه

  10. #10

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    سلام
    برای اینکه برنامت هنگ نکنه ، متد FillGrid رو با ترد اجرا کن

    این فضای نام رو اضافه کن به فرمت
    using System.Threading;


    برای متد FillGrid یه delegate تعریف کن و متد خودت رو هم اینجوری تغییر بده

    public delegate void _fillGrid();
    private void fillGrid()
    {
    if (this.InvokeRequired)
    {
    this.Invoke(new _fillGrid(fillGrid));
    return;
    }
    //کدهای متد خودتو اینجا بنویس
    }



    نهایتا هرجا خواستی متد fillGrid رو فراخوانی کنی ، اینو بجاش جایگزین کن

    Thread Th = new Thread(fillGrid);
    Th.Start();


    و نهایتا برای آپدیت شدن گریدت بعد از بستن فرم افزودن رکورد ، اگر فرمت رو بصورت ShowDialog فراخوانی میکنی ، کافیه ترد رو بعد از نمایش فرم اجرا کنی
    چیزی شبیه به این


    Form1 F = new Form1();
    F.ShowDialog();
    Thread Th = new Thread(fillGrid);
    Th.Start();




    موفق باشید
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  11. #11
    کاربر دائمی آواتار winner1
    تاریخ عضویت
    تیر 1392
    محل زندگی
    خلخال
    پست
    738

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    نقل قول نوشته شده توسط Mohammad.Ashtiani مشاهده تاپیک
    سلام
    برای اینکه برنامت هنگ نکنه ، متد FillGrid رو با ترد اجرا کن

    این فضای نام رو اضافه کن به فرمت
    using System.Threading;


    برای متد FillGrid یه delegate تعریف کن و متد خودت رو هم اینجوری تغییر بده

    public delegate void _fillGrid();
    private void fillGrid()
    {
    if (this.InvokeRequired)
    {
    this.Invoke(new _fillGrid(fillGrid));
    return;
    }
    //کدهای متد خودتو اینجا بنویس
    }



    نهایتا هرجا خواستی متد fillGrid رو فراخوانی کنی ، اینو بجاش جایگزین کن

    Thread Th = new Thread(fillGrid);
    Th.Start();


    و نهایتا برای آپدیت شدن گریدت بعد از بستن فرم افزودن رکورد ، اگر فرمت رو بصورت ShowDialog فراخوانی میکنی ، کافیه ترد رو بعد از نمایش فرم اجرا کنی
    چیزی شبیه به این


    Form1 F = new Form1();
    F.ShowDialog();
    Thread Th = new Thread(fillGrid);
    Th.Start();




    موفق باشید
    لبته اول باید رشترو استارت کنه بعد فرم رو شو کنه

  12. #12

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    نقل قول نوشته شده توسط winner1 مشاهده تاپیک
    لبته اول باید رشترو استارت کنه بعد فرم رو شو کنه
    چیو استارت کنم ؟
    رشترو ؟؟؟؟؟

  13. #13
    کاربر دائمی آواتار winner1
    تاریخ عضویت
    تیر 1392
    محل زندگی
    خلخال
    پست
    738

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    نقل قول نوشته شده توسط اسماعیل ابراهیمی مشاهده تاپیک
    چیو استارت کنم ؟
    رشترو ؟؟؟؟؟
    Thread بعدشم این دوستمون راه حلشون درسته ولی یه داستانی هست اینه سیستم مقصد چه سیستمیه اکثرا مشتریا یه سیستمی دارن که مال اسر بوقه که نمیشه از رشته استفاده کرد

  14. #14

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    نه مشتری سیستمش جدیده
    یکی از شروطی که مشتریای من باید داشته باشن اینه که سیستمشون رو من باید تایید کنم

  15. #15
    کاربر دائمی آواتار winner1
    تاریخ عضویت
    تیر 1392
    محل زندگی
    خلخال
    پست
    738

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    نقل قول نوشته شده توسط اسماعیل ابراهیمی مشاهده تاپیک
    نه مشتری سیستمش جدیده
    یکی از شروطی که مشتریای من باید داشته باشن اینه که سیستمشون رو من باید تایید کنم
    خوش بحالت من که اشکم درومده با یک میلیون رکورد سر کار دارم با یه سیستمای داغون

  16. #16
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

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

    فراخونی متد FillDataGrid در رویداد Activated فرم

    نمی دونم چرا چندین و چند بار اتفاق میافته

    حالا مشکل اینه که وقتی کاربر میره یه بارنامه جدید اضافه می کنه و فرم اضافه کردن رو میبنده ، این دیتاگرید اتوماتیک آپدیت نمیشه

    نمی دونم کد فراخوانی متد FillDataGrid که دیتاگرید رو با اطلاعات جدول بارنامه پر می کنه رو توی کدوم رویداد بنویسم الان ؟

    توی Activated که نمیشه چون خیلی تکرار میشه ---- توی Form_load هم نمیشه چون فقط یه بار اتفاق میافته

    نظـــــــــــــــــر شما چیه ؟
    سلام.
    همونطور که خودتون هم به درستی اشاره کردید، مشکل بخاطر انتخاب در ابزار و روش نامناسب هست و البته منطقی هم نیست که یکبار در formload و یکبار هم در active یک عمل تکراری صورت بگیره.
    فرض بگیریم که دو فرم داشته باشید که در فرم1 دیتاگریدی دارید (dataGridview1) که اطلاعات رو نمایش میده و در فرم2 هم اطلاعات مربوط به فرم1 رو ویرایش (یا درج یا حذف) می کنید که می خواید بعد از هر تغییری سریعا اطلاعات به گرید فرم 1 منتقل بشه (حتی بدون بستن فرم2) و با فرض اینکه از درون فرم 1، فرم 2 رو صدا می زنید (منظور همون show یا showdialog کردن فرم هست).
    حالا کافیه مراحل زیر رو انجام بدید :
    در فرم 2 :
    یک پراپرتی از جنس DataGridView که شامل بدنه get و Set هست رو بصورت سراسری تعریف کنید.
    private DataGridView dgv = new DataGridView();
    public DataGridView Dgv
    {
    get { return dgv; }
    set { dgv = value; }
    }

    حالا بعد از هر کد درج، حذف یا آپدیت که تغییرات روی جدولتون صورت میگیره این دیتاگریدویو (dgv) رو با یک select از جدول مربوطه پر کنید (مثل همیشه که یک گرید رو پر می کنید).
    توی این فرم کار تمومه.
    در فرم 1 :
    درون این فرم هم یک تکه کد کوتاه رو باید قبل از show یا showdialog کردن فرم 2 قرار بدید (با رنگ قرمز مشخص هست) :
    Form2 f2 = new Form2();
    f2.Dgv = dataGridView1;
    f2.ShowDialog();

    نکته : اگر هم از طریق form1 اقدام به نمایش form2 نمی کنید به عبارتی یک فرم اصلی دارید که از اونجا اقدام به نمایش فرم ها می کنید (مثلا از طریق یک menustrip) می تونید در form2 پراپرتی رو بصورت static تعریف کنید و در formload مربوط به form1 ، عمل انتساب گریدها رو انجام بدید :
    Form2.Dgv = dataGridView1;

    سعی کردم که با توضیحات کامل مطلب رو شرح بدم که ابهامی براتون پیش نیاد.
    موفق باشید.

  17. #17

    نقل قول: مشکل با هنگ کردن برنامه سی شارپ

    سلام

    معمولا gridview زمانیکه AutosizeRowMode رو روی Allcell تنظیم کنی سرعت لود رکوردها فوق العاده پایین میاد ، اگر اینطوره روی None بزار
    من این مشکل و داشتم حل شد ، الان 1 میلیون رکورد هم لود میشه در عرض چند ثانیه

    موفق باشید

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

  1. حرفه ای: زمان زیاد در اتصال سی شارپ به sql و هنگ کردن برنامه
    نوشته شده توسط ahmadii در بخش C#‎‎
    پاسخ: 2
    آخرین پست: پنج شنبه 22 اسفند 1392, 14:39 عصر
  2. سوال: مشکل هنگ کردن برنامه dreamweaver و بسته شدن آن در هنگام کد نویسی
    نوشته شده توسط mohammadangizi در بخش طراحی وب (Web Design)
    پاسخ: 3
    آخرین پست: چهارشنبه 18 دی 1392, 23:31 عصر
  3. حرفه ای: کمک در حل مشکل هنگ کردن برنامه
    نوشته شده توسط alimooghashang در بخش C#‎‎
    پاسخ: 8
    آخرین پست: چهارشنبه 25 اردیبهشت 1392, 11:17 صبح
  4. مشکل با تایمر و هنگ کردن برنامه
    نوشته شده توسط c-sharp_South در بخش C#‎‎
    پاسخ: 3
    آخرین پست: پنج شنبه 01 تیر 1391, 21:32 عصر
  5. سوال: حل مشکل هنگ کردن برنامه ها
    نوشته شده توسط djscsi در بخش C#‎‎
    پاسخ: 2
    آخرین پست: چهارشنبه 06 مرداد 1389, 13:38 عصر

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

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