Çalışmam sonuncunda yaptığım bu menü konumunu nasıl ayarlayabilirim ?

thekilic

Yeni üye
26 Mar 2023
26
2
Menü görünümü :?????



Lütfen yardımcı olabilir misiniz ?
Bu tür de ki menülerde konum belirleyemiyorum. Yani demek istediğim bu görünen menüler sayfanın ortalarında yada herhangi bir yerinde olmasını nasıl sağlarım ?
Saygılarımla ,teşekkür ederim.

Menü için yazmış olduğum kodlar.

namespace Konular
{
public class Class1
{
static int index = 0;

public static void notlar()
{
Console.Title = "N O T L A R I M";
Console.OutputEncoding = Encoding.GetEncoding("ibm857");

//Dizi tanımlama işlemi ile menü oluşturmak
string[] dizi_menuler = new string[] { "C # CONSOLE KODLAMA \t", "C # NESNEL KODLAMA \t", "Çıkış" };
Console.WriteLine(dizi_menuler[0]);
Console.WriteLine(dizi_menuler[1]);
Console.WriteLine(dizi_menuler[2]);




List<string> list_menuler = new List<string>(dizi_menuler);


Console.CursorVisible = false;

while (true)
{
Console.Clear();


string secili_oge;
secili_oge = menuler(list_menuler);

if (secili_oge == "C # CONSOLE KODLAMA")
{
Konu_Console.Console_dersi();
}
else if (secili_oge == "C # NESNEL KODLAMA")
{
// Console.Clear();
Konu_Nesnel.Nesnel_dersi();
}
else if (secili_oge == "Çıkış")
{
Environment.Exit(0);
}
}

}

private static string menuler(List<string> list_menu)
{
for (int i = 0; i < list_menu.Count; i++)
{
if (i == index)
{
Console.BackgroundColor = ConsoleColor.Red;
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(list_menu);
}
else
{
Console.Write(list_menu);
}
Console.ResetColor();
}

ConsoleKeyInfo basilantus;
basilantus = Console.ReadKey();

if (basilantus.Key == ConsoleKey.UpArrow)
{
if (index <= 0)
{

}
else
{
index--;
}
}
else if (basilantus.Key == ConsoleKey.DownArrow)
{
if (index == list_menu.Count - 1)
{

}
else
{
index++;
}
}
else if (basilantus.Key == ConsoleKey.Enter)
{
return list_menu[index];
}
else if (basilantus.Key != ConsoleKey.RightArrow || basilantus.Key != ConsoleKey.LeftArrow || basilantus.Key != ConsoleKey.Enter)
{
Console.WriteLine("Hatalı bir tıklama işlemi !!!");
}
else
{
return "";
}
Console.Clear();
return "";
}

}
}
 

thekilic

Yeni üye
26 Mar 2023
26
2
bununla ilgili bir video vardı aradım ama bulamadım bulduğumda atacağım sizinde sorununuzu yazıp araştırmanızda fayda vardır 2 kişi sonuca daha hızlı ulaşabiliriz
Tabi ki teşekkür ederim. Ama ben bu konu için uzun süredir araştırdım lakin çözüm bulamadım. Pes etmekte istemiyorum çünkü önce C# console alanında bir şeyler yapabilmek istiyorum. Deprem öncesine kadar her gün buna çözüm aradım ve deprem olayından sonra zaten fazla evlerde kalamıyoruz kaldığımda da araştırmaya devam.
 

'PoseidonKairos

Katılımcı Üye
14 Şub 2023
273
357
Merhaba,

Menünün sayfanın ortasında veya herhangi bir yerinde gösterilmesi için Console.WindowWidth özelliğini kullanabilirsiniz. Bu özellik, konsol penceresinin genişliğini belirler. Aşağıdaki kodu menülerinizi merkezlemek için kullanabilirsiniz .Bu kodu notlar() metodu içindeki diğer kodlarla birleştirebilirsiniz. Ayrıca, menülerinizi merkezlemek için List<string> yerine string[] kullanabilirsiniz.


C#:
int width = Console.WindowWidth;
int menuWidth = dizi_menuler.Max(s => s.Length);

foreach (string menu in dizi_menuler)
{
    int left = (width - menuWidth) / 2;
    Console.SetCursorPosition(left, Console.CursorTop);
    Console.WriteLine(menu);
}
 

thekilic

Yeni üye
26 Mar 2023
26
2
Merhaba,

Menünün sayfanın ortasında veya herhangi bir yerinde gösterilmesi için Console.WindowWidth özelliğini kullanabilirsiniz. Bu özellik, konsol penceresinin genişliğini belirler. Aşağıdaki kodu menülerinizi merkezlemek için kullanabilirsiniz .Bu kodu notlar() metodu içindeki diğer kodlarla birleştirebilirsiniz. Ayrıca, menülerinizi merkezlemek için List<string> yerine string[] kullanabilirsiniz.


C#:
int width = Console.WindowWidth;
int menuWidth = dizi_menuler.Max(s => s.Length);

foreach (string menu in dizi_menuler)
{
    int left = (width - menuWidth) / 2;
    Console.SetCursorPosition(left, Console.CursorTop);
    Console.WriteLine(menu);
}
İlgilendiğiniz için teşekkür ederim ama bu komutu hangi aşamada kullanmalıyım ?
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.