Forum

uygulamadaki formla...
 
Bildirimler
Hepsini Temizle

uygulamadaki formları listelemek

6 Yazılar
3 Üyeler
0 Reactions
693 Görüntüleme
Murtaza Kayin
(@murtaza)
Gönderiler: 25
Eminent Member
Konu başlatıcı
 

Merhabalar;

C# ile geliştirdiğim programda, solution içerisinde  bulunan modülere ait klasörler var. Bu klasörler içerisinde bulunan Windows formlarını datagrid ile listelemek istiyorum. Konuyla alakalı bir çözüm bulamadım. bu konuda yardımcı olabilirmisiniz?

 

Solution önizlemesine aşağıdaki linkten ulaşabilirsiniz.

  https://yadi.sk/i/K1nD_U773RPE6F

 
Gönderildi : 12/01/2018 12:19

(@aliuysal)
Gönderiler: 292
Üye
 

Merhabalar;

Aşağıdaki gibi girid içinde Form isimlerini ve Hangi klasörde olduklarını listeleyebilirsizin, Sadece istediğiniz klasör için süzme yapabilirsiniz.

Projeyi indirmek için Link;  https://drive.google.com/file/d/1jce5RIkr5rluDuKEBama84-4EFmYvRnv/view?usp=sharing

(Destek için Serdal DİNÇER'e teşekkürler.)

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FormNames
{
public partial class Form1 : Form
{
class formAttributes
{
public string Ad { get; set; }
public string Klasor { get; set; }
public string Baslik { get; set; }
}

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
GetFormNames();
}

private void GetFormNames()
{
List<formAttributes> formNames = new List<formAttributes>();
formNames.Clear();
foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
{
foreach (Type t in asm.GetTypes())
{
try
{
if (t.BaseType == typeof(Form) & t.Namespace.IndexOf(Application.ProductName) > -1 & t.BaseType.Name == "Form")
{
var cTor = t.GetConstructor(Type.EmptyTypes);
if (cTor != null)
{
var form = (Form)cTor.Invoke(new object[] { });

formNames.Add(new formAttributes() { Ad = form.Name, Baslik = form.Text, Klasor = t.FullName.Replace(form.Name, "").Replace(Application.ProductName, "").Replace(".", "") });
}
}
}
catch { }
}

}
dataGridView1.DataSource = formNames;
}
}
}

Dijital dönüşüm başlıyor...
RFID Sayım
WinFlow e-Fatura Onay Akış Süreç Yazılımı
Android El Terminali
Elektrikli Araç Şarj Yazılım Platformu
RFID Demirbaş
QrCode Api

 
Gönderildi : 12/01/2018 13:23

Murtaza Kayin
(@murtaza)
Gönderiler: 25
Eminent Member
Konu başlatıcı
 

Syn Ali Uysal;

Cevabınız için Teşekkür ederim.

listeleme esnasınıda bekleme süresi performans açısından biraz zayıf olduğunu gözlemledim bu listeleme işlemini daha kısa sürelerde yapmak mümkünmü acaba?

 
Gönderildi : 12/01/2018 18:25

(@aliuysal)
Gönderiler: 292
Üye
 

Merhabalar;

Nasıl yapılabileceği konusunda yardımcı oldum, hızlandırmak için bir çok farklı yol mevcut fakat biraz çalışılması gerekiyor uygun bir vakitte göz gezdirir size bilgi veririm. 

Dijital dönüşüm başlıyor...
RFID Sayım
WinFlow e-Fatura Onay Akış Süreç Yazılımı
Android El Terminali
Elektrikli Araç Şarj Yazılım Platformu
RFID Demirbaş
QrCode Api

 
Gönderildi : 12/01/2018 20:30

(@birolaydugan)
Gönderiler: 867
Prominent Member
 

Syn Ali Uysal;

Cevabınız için Teşekkür ederim.

listeleme esnasınıda bekleme süresi performans açısından biraz zayıf olduğunu gözlemledim bu listeleme işlemini daha kısa sürelerde yapmak mümkünmü acaba?

db ye yazıp ordan da okuyabilirsiniz .

 
Gönderildi : 12/01/2018 23:35

Murtaza Kayin
(@murtaza)
Gönderiler: 25
Eminent Member
Konu başlatıcı
 

syn Birol AYDUGAN;

Cevabınız için teşekkür ederim.

Evet bende o şekilde yaptım.

Şuan için en mantıklı yol bu sanırım...

 
Gönderildi : 15/01/2018 16:25

Paylaş: