DataGridTextBoxColumn.Edit 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
准备用于编辑的单元格。
protected public:
override void Edit(System::Windows::Forms::CurrencyManager ^ source, int rowNum, System::Drawing::Rectangle bounds, bool readOnly, System::String ^ instantText, bool cellIsVisible);
protected public:
override void Edit(System::Windows::Forms::CurrencyManager ^ source, int rowNum, System::Drawing::Rectangle bounds, bool readOnly, System::String ^ displayText, bool cellIsVisible);
protected internal override void Edit(System.Windows.Forms.CurrencyManager source, int rowNum, System.Drawing.Rectangle bounds, bool readOnly, string instantText, bool cellIsVisible);
protected internal override void Edit(System.Windows.Forms.CurrencyManager source, int rowNum, System.Drawing.Rectangle bounds, bool readOnly, string displayText, bool cellIsVisible);
override this.Edit : System.Windows.Forms.CurrencyManager * int * System.Drawing.Rectangle * bool * string * bool -> unit
override this.Edit : System.Windows.Forms.CurrencyManager * int * System.Drawing.Rectangle * bool * string * bool -> unit
Protected Friend Overrides Sub Edit (source As CurrencyManager, rowNum As Integer, bounds As Rectangle, readOnly As Boolean, instantText As String, cellIsVisible As Boolean)
Protected Friend Overrides Sub Edit (source As CurrencyManager, rowNum As Integer, bounds As Rectangle, readOnly As Boolean, displayText As String, cellIsVisible As Boolean)
参数
- source
- CurrencyManager
CurrencyManager DataGrid列所属的控件。
- rowNum
- Int32
正在编辑的此列中的行号。
- readOnly
- Boolean
一个值,该值指示列是否为只读。
- instantTextdisplayText
- String
要显示在控件中的文本。
- cellIsVisible
- Boolean
一个值,该值指示单元格是否可见。
true 如果单元格可见,则为否则,为 false.
示例
下面的示例使用 Edit 该方法更改控件中 DataGrid 单击的单元格的文本。
public ref class MyGridColumn: public DataGridTextBoxColumn
{
public:
void EditCol( CurrencyManager^ cm, int rowNum, Rectangle cellRect, bool readOnly, String^ myString, bool isVisible )
{
this->Edit( cm, rowNum, cellRect, readOnly, myString, isVisible );
}
};
public ref class Form1: public Form
{
protected:
DataGrid^ dataGrid1;
DataSet^ myDataSet;
private:
void dataGrid1_MouseDown( Object^ sender, MouseEventArgs^ e )
{
// Use the HitTest method to get a HitTestInfo object.
DataGrid::HitTestInfo ^ hi;
DataGrid^ grid = dynamic_cast<DataGrid^>(sender);
hi = grid->HitTest( e->X, e->Y );
// Test if the clicked area was a cell.
if ( hi->Type == DataGrid::HitTestType::Cell )
{
// If it's a cell, get the GridTable and CurrencyManager of the
// clicked table.
DataGridTableStyle^ dgt = dataGrid1->TableStyles[ 0 ];
CurrencyManager^ cm = dynamic_cast<CurrencyManager^>(this->BindingContext[ myDataSet->Tables[ dgt->MappingName ] ]);
// Get the Rectangle of the clicked cell.
Rectangle cellRect = grid->GetCellBounds( hi->Row, hi->Column );
// Get the clicked DataGridTextBoxColumn.
MyGridColumn^ gridCol = dynamic_cast<MyGridColumn^>(dgt->GridColumnStyles[ hi->Column ]);
// Edit the value.
gridCol->EditCol( cm, hi->Row, cellRect, false, "New Text", true );
}
}
};
public class Form1: Form
{
protected DataGrid dataGrid1;
protected DataSet myDataSet;
private void dataGrid1_MouseDown(object sender, MouseEventArgs e)
{
// Use the HitTest method to get a HitTestInfo object.
DataGrid.HitTestInfo hi;
DataGrid grid = (DataGrid)sender;
hi=grid.HitTest(e.X, e.Y);
// Test if the clicked area was a cell.
if (hi.Type == DataGrid.HitTestType.Cell)
{
// If it's a cell, get the GridTable and CurrencyManager of the
// clicked table.
DataGridTableStyle dgt = dataGrid1.TableStyles[0];
CurrencyManager cm = (CurrencyManager)
this.BindingContext[myDataSet.Tables[dgt.MappingName]];
// Get the Rectangle of the clicked cell.
Rectangle cellRect = grid.GetCellBounds(hi.Row, hi.Column);
// Get the clicked DataGridTextBoxColumn.
MyGridColumn gridCol =
(MyGridColumn)dgt.GridColumnStyles[hi.Column];
// Edit the value.
gridCol.EditCol(cm, hi.Row, cellRect, false, "New Text", true);
}
}
}
public class MyGridColumn:DataGridTextBoxColumn{
public void EditCol(CurrencyManager cm, int rowNum,
Rectangle cellRect, bool readOnly,
string myString, bool isVisible){
this.Edit(cm, rowNum, cellRect, readOnly, myString, isVisible);
}
}
Public Class Form1
Inherits Form
Protected dataGrid1 As DataGrid
Protected myDataSet As DataSet
Private Sub dataGrid1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
' Use the HitTest method to get a HitTestInfo object.
Dim hi As DataGrid.HitTestInfo
Dim grid As DataGrid = CType(sender, DataGrid)
hi = grid.HitTest(e.X, e.Y)
' Test if the clicked area was a cell.
If hi.Type = DataGrid.HitTestType.Cell Then
' If it's a cell, get the GridTable and CurrencyManager of the
' clicked table.
Dim dgt As DataGridTableStyle = dataGrid1.TableStyles(0)
Dim cm As CurrencyManager = CType _
(Me.BindingContext(myDataSet.Tables(dgt.MappingName)), _
CurrencyManager)
' Get the Rectangle of the clicked cell.
Dim cellRect As Rectangle = _
grid.GetCellBounds(hi.Row, hi.Column)
' Get the clicked DataGridTextBoxColumn.
Dim gridCol As MyGridColumn = CType _
(dgt.GridColumnStyles(hi.Column), MyGridColumn)
' Edit the value.
gridCol.EditCol(cm, hi.Row, cellRect, False, "New Text", True)
End If
End Sub
End Class
Public Class MyGridColumn
Inherits DataGridTextBoxColumn
Public Sub EditCol(cm As CurrencyManager , rowNum As integer , _
cellRect As Rectangle , bReadOnly As Boolean , _
myString As String , isVisible As Boolean )
me.Edit(cm, rowNum, cellRect, bReadOnly, myString, isVisible)
End Sub
End Class
注解
将 Edit 控件放在 TextBox 要编辑的单元格的位置的网格上。 编辑操作即将开始时,该方法由 DataGrid 类 BeginEdit 的方法调用。