İngilizce dilinde oku

Aracılığıyla paylaş


DataGridViewCellContextMenuStripNeededEventArgs Sınıf

Tanım

CellContextMenuStripNeeded olayı için veriler sağlar.

C#
public class DataGridViewCellContextMenuStripNeededEventArgs : System.Windows.Forms.DataGridViewCellEventArgs
Devralma
DataGridViewCellContextMenuStripNeededEventArgs

Örnekler

Aşağıdaki kod örneği, satırın DataGridViewCellContextMenuStripNeededEventArgs paylaşımını kaldırmadan kısayol menüsünü ayarlamak için sınıfını kullanır.

C#
private ToolStripMenuItem wholeTable = new ToolStripMenuItem();
private ToolStripMenuItem lookUp = new ToolStripMenuItem();
private ContextMenuStrip strip;
private string cellErrorText;

private void dataGridView1_CellContextMenuStripNeeded(object sender,
    DataGridViewCellContextMenuStripNeededEventArgs e)
{
    cellErrorText = String.Empty;

    if (strip == null)
    {
        strip = new ContextMenuStrip();
        lookUp.Text = "Look Up";
        wholeTable.Text = "See Whole Table";
        strip.Items.Add(lookUp);
        strip.Items.Add(wholeTable);
    }
    e.ContextMenuStrip = strip;
}

private void wholeTable_Click(object sender, EventArgs e)
{
    dataGridView1.DataSource = Populate("Select * from employees", true);
}

private DataGridViewCellEventArgs theCellImHoveringOver;

private void dataGridView1_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
    theCellImHoveringOver = e;
}

private DataGridViewCellEventArgs cellErrorLocation;

private void lookUp_Click(object sender, EventArgs e)
{
    try
    {
        dataGridView1.DataSource = Populate("Select * from employees where " +
            dataGridView1.Columns[theCellImHoveringOver.ColumnIndex].Name + " = '" +
            dataGridView1.Rows[theCellImHoveringOver.RowIndex].
            Cells[theCellImHoveringOver.ColumnIndex].Value + "'",
            true);
    }
    catch (SqlException)
    {
        cellErrorText = "Can't look this cell up";
        cellErrorLocation = theCellImHoveringOver;
    }
}

private void dataGridView1_CellErrorTextNeeded(object sender,
    DataGridViewCellErrorTextNeededEventArgs e)
{
    if (cellErrorLocation != null)
    {
        if (e.ColumnIndex == cellErrorLocation.ColumnIndex &&
            e.RowIndex == cellErrorLocation.RowIndex)
        {
            e.ErrorText = cellErrorText;
        }
    }
}

private DataTable Populate(string query, bool resetUnsharedCounter)
{
    if (resetUnsharedCounter)
    {
        ResetCounter();
    }

    // Alter the data source as necessary
    SqlDataAdapter adapter = new SqlDataAdapter(query,
        new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;" +
        "Initial Catalog=Northwind;Data Source=localhost"));

    DataTable table = new DataTable();
    table.Locale = System.Globalization.CultureInfo.InvariantCulture;
    adapter.Fill(table);
    return table;
}

private Label count = new Label();
private int unsharedRowCounter;

private void ResetCounter()
{
    unsharedRowCounter = 0;
    count.Text = unsharedRowCounter.ToString();
}

Açıklamalar

Olay CellContextMenuStripNeeded yalnızca DataGridView denetim DataSource özelliği ayarlandığında veya VirtualMode özelliği olduğunda truegerçekleşir.

Olayı işlediğinizde, kullanıcı bir hücreye CellContextMenuStripNeeded sağ tıkladığında işleyicide belirttiğiniz kısayol menüsü gösterilir. Bu, bir hücrenin geçerli durumu veya değeri tarafından belirlenen kısayol menülerini görüntülemek istediğinizde kullanışlıdır.

Olay CellContextMenuStripNeeded , özelliğin değeri program aracılığıyla veya kullanıcı hücreye DataGridViewCell.ContextMenuStrip sağ tıkladığında da gerçekleşir.

Bir hücrenin ColumnIndex durumunu veya değerini belirlemek için ve RowIndex özelliklerini kullanabilir ve özelliği ayarlamak ContextMenuStrip için bu bilgileri kullanabilirsiniz. Bu özellik, olay değerinin geçersiz kıldığı hücre ContextMenuStrip özelliğinin değeriyle başlatılır.

Birden çok hücre için CellContextMenuStripNeeded hücre ContextMenuStrip değerini ayarlamanın performans cezalarını önlemek için büyük miktarda veriyle çalışırken olayı işleyebilir. Daha fazla bilgi için bkz. Windows Forms DataGridView Denetimini Ölçeklendirmeye Yönelik En İyi Yöntemler.

Satır özelliğini ayarlayarak veya denetimin ContextMenuStripRowContextMenuStripNeeded olayını işleyerek DataGridView tek tek hücreler yerine tek tek satırlar için kısayol menüleri de belirtebilirsiniz. Hücre ContextMenuStrip özelliği ayarı satır ContextMenuStrip özelliği ayarını geçersiz kılar ve CellContextMenuStripNeeded olay hem olayı hem de RowContextMenuStripNeeded satır ContextMenuStrip özelliği ayarını geçersiz kılar. Bununla birlikte, satır kısayol menüsünün geçersiz kılınmasını önlemek için bir hücre kısayol menüsü belirtebilirsiniz null .

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Oluşturucular

Özellikler

ColumnIndex

Olayın gerçekleştiği hücrenin sütun dizinini gösteren bir değer alır.

(Devralındığı yer: DataGridViewCellEventArgs)
ContextMenuStrip

Olayı tetikleyen CellContextMenuStripNeeded hücrenin kısayol menüsünü alır veya ayarlar.

RowIndex

Olayın gerçekleştiği hücrenin satır dizinini gösteren bir değer alır.

(Devralındığı yer: DataGridViewCellEventArgs)

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Ayrıca bkz.