PDA

View Full Version : سوال: DateTimeSelector



ji ming u
جمعه 20 دی 1398, 16:32 عصر
سلام دوستان
من تو برنامه ام از DateTimeSelector استفاده میکنم
ولی فوکس این کامپوننت با تب جابجا میشه
چجوری با اینتر فوکوس کنم

the king
جمعه 20 دی 1398, 17:35 عصر
سلام دوستان
من تو برنامه ام از DateTimeSelector استفاده میکنم
ولی فوکس این کامپوننت با تب جابجا میشه
چجوری با اینتر فوکوس کنم

کلاس DateTimeSelector.cs اش رو پیدا کنید و باز کنید، متد ProcessDialogKey اش رو پیدا کنید :

protected override bool ProcessDialogKey(Keys keyData)
{
Keys keyCode = keyData & Keys.KeyCode;
Keys modifiers = keyData & Keys.Modifiers;
switch (keyCode)
{
case Keys.Tab:
if ((modifiers & Keys.Control) == Keys.Control)
{
return base.ProcessDialogKey(keyData ^ Keys.Control);
}


کد مربوط به کلید Enter رو بهش اضافه کنید :

protected override bool ProcessDialogKey(Keys keyData)
{
Keys keyCode = keyData & Keys.KeyCode;
Keys modifiers = keyData & Keys.Modifiers;
switch (keyCode)
{
case Keys.Enter:
if (SelectNextEditableComponent())
{
return true;
}
return base.ProcessDialogKey(Keys.Tab);
case Keys.Tab:
if ((modifiers & Keys.Control) == Keys.Control)
{
return base.ProcessDialogKey(keyData ^ Keys.Control);
}

ji ming u
جمعه 20 دی 1398, 18:14 عصر
کلاس DateTimeSelector.cs اش رو پیدا کنید و باز کنید، متد ProcessDialogKey اش رو پیدا کنید
در این مورد میشه توضیح بدهید

the king
جمعه 20 دی 1398, 18:50 عصر
کلاس DateTimeSelector.cs اش رو پیدا کنید و باز کنید، متد ProcessDialogKey اش رو پیدا کنید
در این مورد میشه توضیح بدهید
اول بهتره در پروژه خودتون کد های مربوط به DateTimeSelector رو غیر فعال کنید و از References پروژه تون حذفش کنید تا بعد تغییرات مجددا به پروژه تون اضافه بشه.

کد DateTimeSelector رو دانلود می کنید و جایی از حالت zip شده خارج می کنید :
https://github.com/mchehraz/datetimeselector

پروژه اش رو از طریق فایل DateTimeSelector.csproj یا DateTimeSelector.sln در ویژوال استدیو باز می کنید، مثلا با منوی ...File > Open > Project/Solution
در پنجره Solution Explorer پوشه Atf.UI > DateTimeSelector کلاس DateTimeSelector.cs رو پیدا می کنید، رویش راست کلیک می کنید و گزینه View Code رو انتخاب می کنید تا باز بشه.
محل کد مورد نظر رو طبق توضیحی که دادم پیدا می کنید و تغییر می دهید. می توانید با Ctrl + F دنبال عبارت ProcessDialogKey بگردید.

بعد که کد رو ویرایش کردید از طریق منوی Build > Build Solution پروژه رو کامپایل کنید، نباید خطایی بوجود بیاد.
حالا پروژه رو ذخیره می کنید و می بندید و فعلا کاریش ندارید.

پروژه قبلی خودتون یا پروژه جدید دلخواه رو در ویژوال استدیو باز می کنید. در منوی ...File > Add > Existing Project همون مسیر فایل پروژه DateTimeSelector.csproj رو مشخص می کنید تا در Solution پروژه تون اضافه بشه.
حالا Solution صرفا یک پروژه نداره، پروژه DateTimeSelector بهش اضافه شده.
در همون پنجره Solution Explorer روی References پروژه خودتون (نه پروژه DateTimeSelector) راست کلیک کنید و گزینه ...Add Reference رو انتخاب کنید. در زبانه Projects اون DateTimeSelector رو تیک بزنید و OK کنید.
از طریق منوی Build > Build Solution اون Solution تون رو کامپایل کنید، نباید خطایی بوجود بیاد.
حالا وقتی یک فرم تون در حالت طراحی باز ئه، باید بالای Toolbar که کنترل ها رو از داخلش انتخاب می کنید، گروه DateTimeSelector Components رو ببینید که DateTimeSelector درونش قرار داره.

the king
جمعه 20 دی 1398, 18:57 عصر
اینم یک نمونه :
151239