我正在开发3.5 net紧凑框架下的智能设备(windows ce 6.5)。
我要做的是向DataGrid添加一个简单的按钮(不是datagridview,这个框架不存在)。
由于DataGrid没有Button,您必须开发自己的控件。
我阅读以下代码给我一个想法
https://www.akadia.com/services/dotnet_combobox_in_datagrid.html
但是一旦我实际上将控件添加到DataGrid,我就遇到了障碍,因为我似乎无法找到访问父级的方法。
在原始代码中,他们通过TextBox引用访问它。
// The Edit event is raised when the user sets the focus to the cell
// containing the combobox. In this event the dimensions of the combobox
// are set and an event handler is assigned to handle scrolling of the combobox.
protected override void Edit(
CurrencyManager source,
int rowNum,
Rectangle bounds,
bool readOnly,
string instantText,
bool cellIsVisible)
{
base.Edit(source, rowNum, bounds, readOnly, instantText, cellIsVisible);
// Attach the Combobox to the same Parent Control
// as the TextBox of the DataGrid
myComboBox.Parent = this.TextBox.Parent;
}
但是在紧凑的.net框架中,DataGridTextBoxColumn类没有该引用。
这是我目前的控制。
public class DataGridButtonColumn:DataGridTextBoxColumn
{
private Button _button;
public DataGridButtonColumn()
{
_button = new Button();
_button.Width = 50; //default size
_button.BackColor = Color.Gray; //default color
}
public Button DataGridButton
{
get { return _button; }
}
protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, Brush backBrush, Brush foreBrush, bool alignToRight)
{
base.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight);
}
}
关于如何实现这一点的任何想法?