0

ShowRichMessageBoxクリックしたときに特定のセル値を1行に表示したいのですbuttonが、このイベントでは、行のどこかをクリックするとセル値が表示されます。

ここで何が問題になっていますか.....上記の問題を解決するにはどうすればよいですか?

大きなログ値がいくつかありますが、すでにセルに読み込まれているので、 Is it possible to expand the row when i select a particular row in the datagridview???

 public LogView()
    {
        InitializeComponent();
        this.dataGridView2.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView2_buttonCol);

        bindingList = new SortedBindingList<ILogItemView>();
        dataGridView2.DataSource = bindingList;
        this.dataGridView2.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
        this.dataGridView2.MultiSelect = false;
        var buttonCol = new DataGridViewButtonColumn(); // The button to display a particular cell value when clicks//
        buttonCol.Name = "ButtonColumnName";
        buttonCol.HeaderText = "Show";
        buttonCol.Text = "View";
        buttonCol.UseColumnTextForButtonValue = true;    
        dataGridView2.Columns.Add(buttonCol);

    }

    private void dataGridView2_buttonCol(object sender, DataGridViewCellEventArgs e)
    {

            string name = Convert.ToString(dataGridView2.SelectedRows[0].Cells[2].Value);
            ShowRichMessageBox("Code", name);

    }

編集:

if (e.ColumnIndex != 0) // Change to the index of your button column
            {
                return;
            }

            if (e.RowIndex > -1)
            {
                string name = Convert.ToString(dataGridView2.Rows[e.RowIndex].Cells[2].Value);
                ShowRichMessageBox("Code", name);
            }
4

1 に答える 1

3

CellClick イベント ハンドラーに渡される DataGridViewCellEventArgs インスタンスには、クリックがボタン列から発生したかどうかを確認できるColumnIndexプロパティがあります。

このような:

private void dgv_buttonCol(object sender, DataGridViewCellEventArgs e)
{
        if (e.ColumnIndex != 4) // Change to the index of your button column
        {
             return;
        }

        if (e.RowIndex > -1)
        {
            string name = Convert.ToString(dgv.Rows[e.RowIndex].Cells[2].Value);
            ShowRichMessageBox("Code", name);
        }
}

あなたの質問の2番目の部分については、あなたが何を意味するのかわかりませんが、おそらくSelectionChangedイベントで使用して、行の高さを変更することができます. Windows フォーム DataGridView コントロールの行数」

于 2012-05-25T11:48:19.850 に答える