سلام
ميخواهم كه ليبل هاي من از راست به چب پر شوند.
نه اينكه از مكاني كه هستند به سمت راست پر شوند.
البته ليبل من در يك groupBox است .
اگر دراين groupBox نبود مشكل حل بود ولي نمي دانم چرا درgroupBox جواب نمي دهد
1.JPG
با سپاس از دوستان.
سلام
ميخواهم كه ليبل هاي من از راست به چب پر شوند.
نه اينكه از مكاني كه هستند به سمت راست پر شوند.
البته ليبل من در يك groupBox است .
اگر دراين groupBox نبود مشكل حل بود ولي نمي دانم چرا درgroupBox جواب نمي دهد
1.JPG
با سپاس از دوستان.
آخرین ویرایش به وسیله alireza_rashvand : چهارشنبه 16 آذر 1390 در 11:19 صبح
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
اینو امتحان کنید : خصوصیت RightToLeft برای groupbox رو Yes کنید.
تشكر كه جواب داديد ولي با اين كار ي كه شما گفتيد فقط عنوان بالاي groupBox از چپ به راست مي ايد.1.JPG
اين نمونه كوچكي از خواسته من كه البته نظر دوستمان در ان هست.
همان گونه كه در عكس بالا مي بينيد مقدار تكس باكس رو در 2 ليبل ريختم يكي درون گروپ باكس و ديگري خارج از ان در فرم البته خاصيت راست به چپ فرم را تنظيم كرده ام .
سپاس از شما دوست عزيز ولي راه هايي كه شما فرموديد نيز چاره كار ما نيست .
مقدار TextAlign كه كمكي به ما نمي كند چون اين مقدار ها فقط طريقه پر شدن از داخل فضاي خود ليبل است كه بيشتر در تكس باكس ها به كار ميرود كه چگونه پر شود از وسط يا از راست يا چپ همان تكس باكس
مقدار Direction نيز نداريم.
و در نهايت مقدار Dock خوب بود ولي ديگر به ما اجاز جا به جايي نمي دهد .
باز هم تشكر از شما دوست عزيز
شاید این به دردتون بخوره:
خصوصیت AutoSize لیبل رو False کنید و لیبل رو تا جایی که لازمه گسترش بدین،خصوصیت TextAlign لیبل رو هم مثلا MiddleLeft بذارین.
سلام
و تشكر دوباره
روشي كه دوستمان گفت يك مسكن موقت است نه درمان .
اگر متن ما كم يا زياد شود به مشكل بر مي خوريم .
ايا كسي بود كه من را ياري كند ؟
آخرین ویرایش به وسیله alireza_rashvand : پنج شنبه 17 آذر 1390 در 12:56 عصر
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟
یک کنترل لیبل بسازید
فکر کنم این کد کارتون رو راه بندازه
زیاد کدنویسیش جالب نشد اما به هر حال مثل اینکه کار میده
public partial class myLabel :Label
{
public myLabel()
{
InitializeComponent();
}
private int _width;
bool bln = false;
protected override void OnTextChanged(EventArgs e)
{
if (bln)
{
_width = this.Width;
base.OnTextChanged(e);
if (RightToLeft == RightToLeft.Yes)
this.Left = this.Left - (this.Width - _width);
}
bln = true;
}
}
فكر كنم بهتر از اين هم بشه انجام داد
راه ديگري ندارد ؟
يعني اين نرم افزار فكر اينجاشو نكرده ؟
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
بهترین کار اینه که در تنظیمات Form راست به چپ اون رو درست(true) انتخاب کنید اینگونه تمامی اشیا بکار رفته به طور پیشفرض راست به چپ خواهند شد
این کد رو هم امتحان کن
private void label1_Resize(object sender, EventArgs e)
{
label1.Left = groupBox1.Width - label1.Width-5;
}
سپاس از همه دوستان
اینگونه که معلوم است باید کد نشوت .
پس راهی در خود نرم افزار نیست .
البته کد شما بسیار ساده و درست است .
حتما خود شما هم می دانید که این نکته که لیبل از راست به چپ پر شود بسیار مهم است در نرم افزار های فارسی .
و اینکه برای هر لیبل کد ریسایز برای ان نوشت خیلی مناسیب نیست .
البته این مشکل را هیچ وقت در وب نداشتم نمی دانم چرا این جا (نرم افزار نویسی) این مشکل پیش امد .
ایا دوستانی نرم افزار نویس فارسی هستند مشکل خود را همین گونه حل می کنند.
باز هم ممنون از همه دوستان که کمک کردند .
شما می تونید RightToLeftLayout فرم true کنید مشکلتون حل می شه اما نکتش اینه که آیکن Close سمت چپ می ره که جالب نیست.
اما راه درستو اشاره کردن شما باید AutoSize رو false کنید و اندازه label رو متناسب با نیازتون توی groupbox قرار بدین و در نهایت با true کردن AutoEllipsis اگه متن بیشتر از اندازه لیبل بود آخرش سه نقطه بذاره.
اگه autosize را true کنید باعث می شه اگه متن زیادی توی label قرار بگیره اندازه label افزایش پیدا کنه و از GroupBox بیرون بزنه پس بهتره autosize نباشه و اندازه ثابت باشه تا ظاهر فرم بهم نریزه
البته می تونید از textBox هم استفاده کنید به این شکل که ReadOnly رو true کنید و BorderStyle رو none کنید این کار باعث می شه ظاهر label رو پیدا کنه و اگه متن بیشتر از اندازه باشه کاربر بتونه با کرسر پیمایش کنه و بقیه متنو ببینه
سلام
من هم همین مشکل رو دارم
من یه نرم افزار چند زبانه نوشتم و می خوام وقتی layot فرم رو تغییر بدم همه چیز عکس بشه
که فقط کنترل های داخل پنل و گروپ باکس تغییر نمی کند
لایوت باید بشه با راست چین و چپ چین نمیشه
هیچ کدم از جواب های بالا هم منطقی نیست در پروژه های بزرگ مناسب نیست
باید راهی داشته باشه حتما!