PDA

View Full Version : سوال: چيدامان متن از راست به چب در groupBox



alireza_rashvand
چهارشنبه 16 آذر 1390, 11:56 صبح
سلام

ميخواهم كه ليبل هاي من از راست به چب پر شوند.
نه اينكه از مكاني كه هستند به سمت راست پر شوند.
البته ليبل من در يك groupBox است .
اگر دراين groupBox نبود مشكل حل بود ولي نمي دانم چرا درgroupBox جواب نمي دهد
78812
با سپاس از دوستان.

alireza_rashvand
چهارشنبه 16 آذر 1390, 12:23 عصر
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

solaleh
چهارشنبه 16 آذر 1390, 12:27 عصر
اینو امتحان کنید : خصوصیت RightToLeft برای groupbox رو Yes کنید.

alireza_rashvand
چهارشنبه 16 آذر 1390, 12:50 عصر
تشكر كه جواب داديد ولي با اين كار ي كه شما گفتيد فقط عنوان بالاي groupBox از چپ به راست مي ايد.78814
اين نمونه كوچكي از خواسته من كه البته نظر دوستمان در ان هست.
همان گونه كه در عكس بالا مي بينيد مقدار تكس باكس رو در 2 ليبل ريختم يكي درون گروپ باكس و ديگري خارج از ان در فرم البته خاصيت راست به چپ فرم را تنظيم كرده ام .

alireza_rashvand
چهارشنبه 16 آذر 1390, 13:41 عصر
سپاس از شما دوست عزيز ولي راه هايي كه شما فرموديد نيز چاره كار ما نيست .
مقدار TextAlign كه كمكي به ما نمي كند چون اين مقدار ها فقط طريقه پر شدن از داخل فضاي خود ليبل است كه بيشتر در تكس باكس ها به كار ميرود كه چگونه پر شود از وسط يا از راست يا چپ همان تكس باكس
مقدار Direction نيز نداريم.
و در نهايت مقدار Dock خوب بود ولي ديگر به ما اجاز جا به جايي نمي دهد .
باز هم تشكر از شما دوست عزيز

solaleh
چهارشنبه 16 آذر 1390, 14:48 عصر
شاید این به دردتون بخوره:
خصوصیت AutoSize لیبل رو False کنید و لیبل رو تا جایی که لازمه گسترش بدین،خصوصیت TextAlign لیبل رو هم مثلا MiddleLeft بذارین.

alireza_rashvand
پنج شنبه 17 آذر 1390, 11:06 صبح
سلام
و تشكر دوباره
روشي كه دوستمان گفت يك مسكن موقت است نه درمان .
اگر متن ما كم يا زياد شود به مشكل بر مي خوريم .
ايا كسي بود كه من را ياري كند ؟

سوداگر
پنج شنبه 17 آذر 1390, 12:57 عصر
سلام
و تشكر دوباره
روشي كه دوستمان گفت يك مسكن موقت است نه درمان .
اگر متن ما كم يا زياد شود به مشكل بر مي خوريم .
ايا كسي بود كه من را ياري كند ؟

یه لطفی کن و با فتوشاپ یا Paint دقیقا بگو فریم و لیبل رو چجوری میخوای باشه و رنگ خود لیبل رو چیزی غیر از رنگ فریم بذار؟

alireza_rashvand
پنج شنبه 17 آذر 1390, 13:44 عصر
بازهم تشكر از همه

اين شكل اوليه ماست :
78873

كد :78872

درحال اجرا :
78871

همان گونه كه مي بينيد ان ليبلي كه در داخل گروه است به سمت چپ پر ميشود
و انكه بيرون درون فرم است به سمت راست .
و من مي خواهم كه داخلي به سمت راست پر شود.

اميد وارم كمك كند.

alireza_rashvand
پنج شنبه 17 آذر 1390, 13:57 عصر
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟

wolf_majid
پنج شنبه 17 آذر 1390, 14:09 عصر
یک کنترل لیبل بسازید
فکر کنم این کد کارتون رو راه بندازه
زیاد کدنویسیش جالب نشد اما به هر حال مثل اینکه کار میده :خجالت:

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;
}


}

alireza_rashvand
پنج شنبه 17 آذر 1390, 14:22 عصر
فكر كنم بهتر از اين هم بشه انجام داد
راه ديگري ندارد ؟
يعني اين نرم افزار فكر اينجاشو نكرده ؟

alireza_rashvand
شنبه 19 آذر 1390, 13:41 عصر
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

h-rafiee
شنبه 19 آذر 1390, 14:16 عصر
بهترین کار اینه که در تنظیمات Form راست به چپ اون رو درست(true) انتخاب کنید اینگونه تمامی اشیا بکار رفته به طور پیشفرض راست به چپ خواهند شد

zarrinnegar
شنبه 19 آذر 1390, 14:21 عصر
این کد رو هم امتحان کن


private void label1_Resize(object sender, EventArgs e)
{
label1.Left = groupBox1.Width - label1.Width-5;
}

alireza_rashvand
شنبه 19 آذر 1390, 17:08 عصر
سپاس از همه دوستان
اینگونه که معلوم است باید کد نشوت .
پس راهی در خود نرم افزار نیست .
البته کد شما بسیار ساده و درست است .
حتما خود شما هم می دانید که این نکته که لیبل از راست به چپ پر شود بسیار مهم است در نرم افزار های فارسی .
و اینکه برای هر لیبل کد ریسایز برای ان نوشت خیلی مناسیب نیست .
البته این مشکل را هیچ وقت در وب نداشتم نمی دانم چرا این جا (نرم افزار نویسی) این مشکل پیش امد .

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

gwbasic
شنبه 19 آذر 1390, 18:03 عصر
شما می تونید RightToLeftLayout فرم true کنید مشکلتون حل می شه اما نکتش اینه که آیکن Close سمت چپ می ره که جالب نیست.
اما راه درستو اشاره کردن شما باید AutoSize رو false کنید و اندازه label رو متناسب با نیازتون توی groupbox قرار بدین و در نهایت با true کردن AutoEllipsis اگه متن بیشتر از اندازه لیبل بود آخرش سه نقطه بذاره.
اگه autosize را true کنید باعث می شه اگه متن زیادی توی label قرار بگیره اندازه label افزایش پیدا کنه و از GroupBox بیرون بزنه پس بهتره autosize نباشه و اندازه ثابت باشه تا ظاهر فرم بهم نریزه

البته می تونید از textBox هم استفاده کنید به این شکل که ReadOnly رو true کنید و BorderStyle رو none کنید این کار باعث می شه ظاهر label رو پیدا کنه و اگه متن بیشتر از اندازه باشه کاربر بتونه با کرسر پیمایش کنه و بقیه متنو ببینه

rezaei manesh
چهارشنبه 01 آذر 1391, 11:31 صبح
سلام
من هم همین مشکل رو دارم
من یه نرم افزار چند زبانه نوشتم و می خوام وقتی layot فرم رو تغییر بدم همه چیز عکس بشه
که فقط کنترل های داخل پنل و گروپ باکس تغییر نمی کند
لایوت باید بشه با راست چین و چپ چین نمیشه
هیچ کدم از جواب های بالا هم منطقی نیست در پروژه های بزرگ مناسب نیست
باید راهی داشته باشه حتما!