یه سوالی داشتم ازتون :
میخواستم ببنم توی این عکسی که توی پست زیر گذاشتین ، اون تقویم فارسی رو چطوری به برنامه-تون اضافه کردین ؟!
https://barnamenevis.org/showth...ary#post718303
من FarsiLibrary رو دارم ، اما وقتی ازش استفاده میکنم ، تقویم میلادی میذاره !!!!
اگه با یه مثال کوچیک راهنماییم کنید ممنون میشم .
تشکر
در VB از یه کلاس واسه سویچ بین فارسی و انگلیسی استفاده میکنم
Public Class ClassKeyboardLayout
'''<summary>Changes Keyboard language </summary>
''' <param name="lng">the abbreviation name of language.
''' FA stands for Farsi.
''' EN stands for English</param>
'''<remarks> زبان کیبورد رو بین فارسی و انگلیسی سویچ میکنه</remarks>
'''
Public Shared Sub ChangeKeyboardLayour(ByVal lng As String)
If lng.Trim().ToUpper() = "FA" Then
Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("FA-IR")
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture
Application.CurrentInputLanguage = InputLanguage.FromCulture(New Globalization.CultureInfo("FA-IR"))
End If
If lng.Trim().ToUpper() = "EN" Then
Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("EN-US")
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture
Application.CurrentInputLanguage = InputLanguage.FromCulture(New Globalization.CultureInfo("EN-US"))
End If
End Sub
در C# در فایل program.cs همچین کدی رو اضافه میکنم
[STAThread]
static void Main()
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo( "fa-IR" );
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault( false );
Application.Run( new Form1() );
}
سورس برنامه بالا هم اینه
public Form1()
{
InitializeComponent();
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture( new System.Globalization.CultureInfo( "fa-IR" ) ); //Change Windows language into Persian
faMonthView1.DefaultCalendar = faMonthView1.PersianCalendar; //switch to persian calendar
faMonthView1.DefaultCulture = faMonthView1.PersianCulture;// switch to persian culture
faMonthView1.ShowEmptyButton = false;
faMonthView1.Theme = FarsiLibrary.Win.Enums.ThemeTypes.Office2007;
faMonthView1.SelectedDateTime = PersianDate.Now.ToDateTime();
this.Text = " امروز: " + PersianDate.Now.ToWritten(); // show today
}
//******************************
private void button1_Click( object sender , EventArgs e )
{
int distance = int.Parse( textBox2.Text );
DateTime FromDate = new PersianDate( textBox1.Text ); // returns milady
PersianDate ToDate = FromDate.AddDays( distance ); // returns persian
DateTime Today = PersianDate.Now;
TimeSpan Mohlat = ToDate - Today;
textBox3.Text = ToDate.ToString( "d" );
faMonthView1.SelectedDateTime = ToDate;
textBox4.Text = Mohlat.Days.ToString().Trim();
}
//****************************
private void faMonthView1_DrawCurrentDay( object sender , FarsiLibrary.Win.Events.CustomDrawDayEventArgs e )
{
if ( e.Date.DayOfWeek == DayOfWeek.Friday )
{
using ( Pen p = new Pen( Color.Red ) )
using ( SolidBrush br = new SolidBrush( Color.Red ) )
using ( Font font = new Font( "Tahoma" , 9 , FontStyle.Regular ) )
using ( StringFormat fmt = new StringFormat() )
{
string dayNo = toFarsi.Convert( e.Day.ToString() );
fmt.Alignment = StringAlignment.Center;
fmt.LineAlignment = StringAlignment.Center;
if ( e.IsToday )
{
faMonthView1.Painter.DrawSelectedPanel( e.Graphics , e.Rectangle );
}
e.Graphics.DrawString( dayNo , font , br , e.Rectangle , fmt );
e.Handled = true;
}
}
}
private void button2_Click_1( object sender , EventArgs e )
{
int Week = int.Parse(txtWeek.Text);
DateTime FirstDayOfYear = new PersianDate( PersianDate.Now.Year.ToString() + "/01/01" );
PersianDate FirstDayOfWeek = FirstDayOfYear.AddDays( ( Week - 1 ) * 7 );
txtDate.Text = FirstDayOfWeek.ToString( "d" );
faMonthView2.SelectedDateTime = FirstDayOfWeek;
}
//***************
}