如何在3.5紧凑的网络框架下向Datagrid添加一个按钮

时间:2018-03-16 00:02:10

标签: c# windows-mobile-6.5

我正在开发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);
        }
    }

关于如何实现这一点的任何想法?

0 个答案:

没有答案