PDA

View Full Version : صفحه بندی در flowLayoutPanel



Helpco
یک شنبه 02 اردیبهشت 1397, 07:47 صبح
همین طور که در عکس زیر میبنید من یک کنترل را در flowLayoutPanel لود مکنم مخوام اگه تعداد این کنترل ها که داخل flowLayoutPanel اضافه میشه بیشتر از یم تعدادمشخص شد به صورت صفحه صفحه بشه
147984

رامین مرادی
یک شنبه 02 اردیبهشت 1397, 08:45 صبح
شما میتونید تعداد رکوردها رو بدست بیارید بعد تقسیم بر تعداد هر مقدار ردیف مورد نظر در صفحه بکنید تا تعداد صفحه بدست بیاد. بعد به وسیله شماره صفحه جاری و تعداد فیلد ها میتونید اون رکوردها رو از دیتابیس بخونید و نمایش بدید و کاربر با زدن صفحه بعد یا قبل کد مربوطه برای دریافت اون ردیف ها رو بدست بیارید و نمایش بدید

Helpco
یک شنبه 02 اردیبهشت 1397, 09:19 صبح
امکان داره یک نمونه کوچیک قرار بدید

رامین مرادی
یک شنبه 02 اردیبهشت 1397, 11:34 صبح
نمیدونم با چه روشی کد نویسی کردین اما این نمونه کد میتونه کمکتون کنه
https://www.codeproject.com/Articles/16303/DataGrid-Paging-C-Windows-Forms

فقط با این تفاوت که بجای پر کردن دیتا گرید کنترل اختصاصی خودتون رو پر کنید.

Helpco
یک شنبه 02 اردیبهشت 1397, 11:44 صبح
نمیدونم با چه روشی کد نویسی کردین اما این نمونه کد میتونه کمکتون کنه
https://www.codeproject.com/Articles/16303/DataGrid-Paging-C-Windows-Forms

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

رامین مرادی
یک شنبه 02 اردیبهشت 1397, 12:32 عصر
فک کنم متوجه منظور من نشدید.
شما بگید این کنترل ها رو که ایجاد میکنید تو لایوت از کجا تعدادشو میدونی؟ از یه جایی میخونید پر میکنید؟ اون فیلد های داخلشو از کجا پر میکنید؟

Helpco
یک شنبه 02 اردیبهشت 1397, 12:49 عصر
من یکUserControl را با یک حلقه داخل flowLayoutPanel پر مکنم مثل کد زیر




for (int i = last_i; i < DataSource.Count; i++)
{


UserCon usr1 = new UserCon();
NewFunction(DataSource[i].MelkFor_id);
usr1.set(i, DataSource[i].MelkType, DataSource[i].MelkID, DataSource[i].YearBuilt.ToString(),
DataSource[i].Size, DataSource[i].aspect, DataSource[i].Documents, DataSource[i].Address,
DataSource[i].SalesPrices, Images1);
//usr1.Margin = new Padding(100, 0, 0, 0);
flowLayoutPanel.Controls.Add(usr1);
flowLayoutPanel.ScrollControlIntoView(usr1);
Images1.Clear();

}



حلا مخوام بصورت صفحه به صفحه نشون بدم یعنی از لحقه اول 1تا8 بخونم داخل flowLayoutPanel نشون بدم بعد دکمه بعدی کلیک شد از 9 تعداد 8 عدد بره جلو و به همین شکل تا اخر

رامین مرادی
یک شنبه 02 اردیبهشت 1397, 13:31 عصر
یه نمونه کد خیلی ساده میزارم(فک نکنم بشه ساده تر از این نوشت) ازش الگو بگیرید.

Helpco
یک شنبه 02 اردیبهشت 1397, 14:11 عصر
یه نمونه کد خیلی ساده میزارم(فک نکنم بشه ساده تر از این نوشت) ازش الگو بگیرید.

ممنون خیلی عالی فقط دوتا مشکل هست یکی
TestControl[] t = new TestControl[50]; خوب تعداد اینجا شما نوشتید 50 ولی من مخوام این دستی نباشه
بعد نمیشه بگم الان صفحه چند از چند

رامین مرادی
یک شنبه 02 اردیبهشت 1397, 14:22 عصر
ممنون خیلی عالی فقط دوتا مشکل هست یکی
TestControl[] t = new TestControl[50]; خوب تعداد اینجا شما نوشتید 50 ولی من مخوام این دستی نباشه
بعد نمیشه بگم الان صفحه چند از چند

شما میتونید تعداد رکوردهاتون رو بدست بیارید. DataSource.Count

Helpco
یک شنبه 02 اردیبهشت 1397, 14:32 عصر
شما میتونید تعداد رکوردهاتون رو بدست بیارید. DataSource.Count

شرمنده یکم گیج میزنم درست از این بدشت میارم ولی چطوری به TestControl[] t = new TestControl[50]; نسبت بدم ؟

در صورت امکان همون نمونه مقدارا اولیه از یک متقیر بخوتید بجای

TestControl[] t = new TestControl[50];
امکان داره

رامین مرادی
دوشنبه 03 اردیبهشت 1397, 09:27 صبح
نمیدونم چطوری به صورت داینامیک طول آرایه رو باید تغییر داد. اما میتونید بجای آرایه از لیست ها استفاده کنید.
لینک زیر رو مطالعه کنید امیدوارم مفید باشه: https://rcode.ir/1397/02/03/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%84%DB%8C%D8%B3%D8%AA-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-list-%D9%87%D8%A7/

Helpco
دوشنبه 03 اردیبهشت 1397, 10:34 صبح
مشکل من اینطوری حل کردم میزارم اگه کسی یوقت مشکل داشت استفاده کن