Local
Bende c# olmadığından teorik olarak cevap veriyorum, birde aşağıda ki kodu dener misiniz ?
Form1'de bir Button var ve bu Button'a tıklayınca Form2 açılıyor. Form2'de bir ListView var ve bu ListView'deki bir elemana çift tıklayınca, o elemanın değeri Form1'deki TextBox'a aktarılacak ve ardından Form2 kapanacak.
Bu durumu gerçekleştirmek için iki form arasında veri alışverişi yapmamız gerekiyor. İşte bu senaryoyu gerçekleştirecek örnek kodlar:
Form1 İçin Gerekli Kod:
using System;
using System.Windows.Forms;
namespace YourNamespace
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (Form2 form2 = new Form2())
{
if (form2.ShowDialog() == DialogResult.OK)
{
// Form2'den seçilen değeri al ve TextBox'a aktar
textBox1.Text = form2.SelectedItem;
}
}
}
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(12, 12);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(260, 20);
this.textBox1.TabIndex = 0;
//
// button1
//
this.button1.Location = new System.Drawing.Point(12, 38);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 1;
this.button1.Text = "Aç";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 71);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
}
}
**Form 2 İçin Gerekli Kod:**
using System;
using System.Windows.Forms;
namespace YourNamespace
{
public partial class Form2 : Form
{
public string SelectedItem { get; private set; }
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
// ListView'e örnek veri ekleyelim
listView1.Items.Add("Ürün 1");
listView1.Items.Add("Ürün 2");
listView1.Items.Add("Ürün 3");
// ListView'e çift tıklama olayını ekleyelim
listView1.DoubleClick += ListView1_DoubleClick;
}
private void ListView1_DoubleClick(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
SelectedItem = listView1.SelectedItems[0].Text;
this.DialogResult = DialogResult.OK;
this.Close();
}
}
private void InitializeComponent()
{
this.listView1 = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.SuspendLayout();
//
// listView1
//
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1});
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(12, 12);
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(260, 237);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details;
//
// columnHeader1
//
this.columnHeader1.Text = "ÜRÜN ADI";
this.columnHeader1.Width = 200;
//
// Form2
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 261);
this.Controls.Add(this.listView1);
this.Name = "Form2";
this.Text = "Form2";
this.Load += new System.EventHandler(this.Form2_Load);
this.ResumeLayout(false);
}
private System.Windows.Forms.ListView listView1;
private System.Windows.Forms.ColumnHeader columnHeader1;
}
}
Form1: button1'e tıklanınca Form2 açılır. Form2'de bir eleman seçilirse, Form2'den alınan değer Form1'deki textBox1'e aktarılır.
Form2: ListView'de bir elemana çift tıklanınca, seçilen elemanın değeri SelectedItem özelliğine atanır ve DialogResult olarak OK döndürülür, ardından Form2 kapanır.