PDA

View Full Version : label



mona_z
دوشنبه 16 اردیبهشت 1387, 09:08 صبح
من در فرمم يك label دارم در اجرايي وقتي متن زياد داخل آن ميريزم طول label خيلي زياد مي شه مي خواستم ببينم راهي است كه اسكرول بخور ولي طولش زياد نشه

eyes_shut_number1
دوشنبه 16 اردیبهشت 1387, 09:20 صبح
این سوال رو چند هفته پیشم پرسیده شد!
جواب هم داده شد!
شما باید به ازای مثلا هر 50 کارکتر برید خط جدید
توی
C# ----> \n
vb.net ----> Newline

mona_z
دوشنبه 16 اردیبهشت 1387, 09:25 صبح
ممنون سرچ كردم ولي پيدا نكردم

mohsen_metn
دوشنبه 16 اردیبهشت 1387, 09:51 صبح
سلام
ممکنه یه مثال (نمونه کد) هم بزنید
با تشکر

eyes_shut_number1
دوشنبه 16 اردیبهشت 1387, 10:47 صبح
dim str as string=textbox1.text
dim ch() as char=str.tochararray
str=""
for i as integer=0 to ubound(ch)-1
if i>50 then
str+=vbNewLine
end if
str+=ch(i)
next

mona_z
دوشنبه 16 اردیبهشت 1387, 10:59 صبح
يك راه آسان تر خاصيت textmode textbox ‌را برابر multiline ‌ميكني و خاصيت borderstyle را برابر none مي كنيم ميشود مانند label

eyes_shut_number1
دوشنبه 16 اردیبهشت 1387, 13:13 عصر
بله!!!!!!!!!!!
درسته بعد اونوقط با اطلاعات ناقصی که دارم میشه تکس داخل تکس باکسو عوض کرد!!!!
ولی لیبل رو نه

Amir Taghavi
دوشنبه 16 اردیبهشت 1387, 13:27 عصر
من فکر می کنم اگه طول Label رو مشخص کنید و اون در یک Panel قرارش بدید بهتره! اینجوری اگه طولش بیش از اندازه شد، Panel اسکرول دار(!) میشه. البته من هنوز متوجه نشدم که منظور دوستمون از طول، width هست یا height. چون باید نسبت به اون، خاصیت اسکرول Panel رو Set کنید.

mohsen_metn
دوشنبه 16 اردیبهشت 1387, 14:04 عصر
سلام
من این کد رو تبدیل به سی شارپ اش کردم ودر رویداد ان لود لیبل قرا دادم ولی کار نمی کنه

string str = Label1.Text;
char[] ch = str.ToCharArray();
str = "";
for (int i = 0;i<100; i++)
{
if (i > 50)
{
str += "\n";
}
str += ch[1];
}

amir.NET2
دوشنبه 16 اردیبهشت 1387, 14:11 عصر
دوست عزیز اصلا نیازی به این کارها نیست . شما ممکن است دو تا نتیجه را بخواهید

1- اگر می خواهید تکست بعد از حدی اسرول حالا چه افقی چه عمودی بخورد بهتر از Div استفاده کنید چون Panel خود ASP.NET به شدت Load صفحه رو الکی پایین میاره

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

کدنویسی برای این کار فوق العاده غیر علمی و غیر منطقی هست . با کد نویسی اضافی و بی مورد فقط Performance پروژه ی خود را پایین می آورید

mohsen_metn
دوشنبه 16 اردیبهشت 1387, 14:28 عصر
دوست عزیز اصلا نیازی به این کارها نیست . شما ممکن است دو تا نتیجه را بخواهید

1- اگر می خواهید تکست بعد از حدی اسرول حالا چه افقی چه عمودی بخورد بهتر از Div استفاده کنید چون Panel خود ASP.NET به شدت Load صفحه رو الکی پایین میاره

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

کدنویسی برای این کار فوق العاده غیر علمی و غیر منطقی هست . با کد نویسی اضافی و بی مورد فقط Performance پروژه ی خود را پایین می آورید
دوست عزیر من قبلا این لیبل رو داخل یک TD قرار دادم ولی با پر شدن لیبل مثلا از بانک تمام سایز خانه جدولی رو که تعیین کرده بودم بهم میریزه

twelve
دوشنبه 16 اردیبهشت 1387, 16:37 عصر
دوست عزیر من قبلا این لیبل رو داخل یک TD قرار دادم ولی با پر شدن لیبل مثلا از بانک تمام سایز خانه جدولی رو که تعیین کرده بودم بهم میریزه

سایز TD رو فیکس کن ، اطلاعات رو (اگر چند کلمه ای هستند )به جای Label در Div بریز. اگر هم تک کلمه ای هستند باید از New Line استفاده کنی.

mohsen_metn
سه شنبه 17 اردیبهشت 1387, 15:12 عصر
سلام
میشه یکمی مورد DIV توضیح بدهید.لطفا همراه با یه مثال

eyes_shut_number1
سه شنبه 17 اردیبهشت 1387, 17:28 عصر
<div width="100" height="100">
لیبلت رو اینجا بذار!
</div>

دی آی وی یه محدوده رو برات درست میکنه که میتونه آی دی هم داشته باشه + طول و عرض و همه چیزهایی که یه تگ داره