18

次の図を検討してください

ここに画像の説明を入力してください

次のコードを使用してセルをクリックすると、図に示されている3つのテキストボックスに選択された行の値が表示されます。

void dataGridView1_CellClick_1(object sender, DataGridViewCellEventArgs e) {
    TBGRNo.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
    TBSName.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
    TBFName.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
}

私の質問は:DevExpress XtraGridコントロールで同じことをどのように行うのですか?

4

7 に答える 7

27

これが私が従った方法です、

int[] selRows = ((GridView)gridControl1.MainView).GetSelectedRows();
DataRowView selRow = (DataRowView)(((GridView)gridControl1.MainView).GetRow(selRows[0]));
txtName.Text = selRow["name"].ToString();

また、selRows 配列を使用して、選択した行を反復処理することもできます。ここでのコードは、最初に選択した行からのみデータを取得する方法を示しています。これらのコード行をグリッドのクリック イベントに挿入できます。

于 2013-02-15T16:52:11.427 に答える
26

これは、さまざまな方法で実行できます。データバインディングを使用できます(通常、InitializeComponent();の後に初期化されます)。

textBox1.DataBindings.Add(new Binding("Text", yourBindingSource, 
                    "TableName.ColumnName", true, DataSourceUpdateMode.OnPropertyChanged));

または、DataLayoutControlを使用します(編集にテキストボックスを使用する場合は、このコンポーネントの使用方法を学ぶために時間をかけることをお勧めします。

または、FocusedRowChangedで、次のいずれかのメソッドから割り当てます。

textBox1.Text = gridView1.GetDataRow(e.FocusedRowHandle)["Name"].ToString();
textBox1.Text = gridView1.GetFocusedDataRow()["Name"].ToString();
textBox1.Text = (gridView1.GetFocusedRow() as DataRowView).Row["Name"].ToString();
textBox1.Text = gridView1.GetFocusedRowCellValue("Name").ToString();
于 2012-10-08T07:52:52.360 に答える
12

私は次のように解決策を見つけました:

private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
{
    TBGRNo.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "GRNo").ToString();
    TBSName.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "SName").ToString();
    TBFName.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "FName").ToString();            
}

ここに画像の説明を入力

于 2012-10-07T19:33:43.533 に答える
4

どのグリッドを使用していますか? XtraGrid または AspXGrid? これは、XtraGrid を使用した私のアプリの一部です。

private void grdContactsView_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
    _selectedContact = GetSelectedRow((DevExpress.XtraGrid.Views.Grid.GridView)sender);
}

private Contact GetSelectedRow(DevExpress.XtraGrid.Views.Grid.GridView view)
{
    return (Contact)view.GetRow(view.FocusedRowHandle);
}

My Grid には、Contact オブジェクトのリストがバインドされています。行がクリックされるたびに、選択した行を _selectedContact にロードします。お役に立てれば。サポートおよびドキュメント サイトにアクセスすると、コントロールの使用に関する多くの情報を見つけることができます。

于 2012-10-07T16:13:31.680 に答える
1

VB.Net の場合

CType(GridControl1.MainView, GridView).GetFocusedRow()

C# の場合

((GridView)gridControl1.MainView).GetFocusedRow();

linq でデータをバインドする例

Dim selRow As CUSTOMER = CType(GridControl1.MainView, GridView).GetFocusedRow()
于 2015-02-14T16:25:49.407 に答える