我已经构建了一个继承自datagridview的自定义控件。我需要添加其他几个控件(一些文本框,按钮等),但是因为我从datagridview继承它占用了整个矩形(绘制区域)。 我一直在寻找一个示例或方法来执行以下操作: 绘制datagridview(自定义控件),同时在其下面绘制几个按钮。
我觉得我需要继承默认的Windows窗体控件,然后在其中的一部分和另一部分的按钮上绘制datagridview。但是在我的搜索中,我还没有找到办法做到这一点。也许我正在寻找错误的问题,或者我正在以错误的方式看待它。如何创建一个自定义控件,其上绘制了几个现有控件?
答案 0 :(得分:2)
您可以从TableLayoutPanel继承并在一个单元格中添加自定义DataGridView控件,在其他单元格中添加其他所需控件。
这将允许您使用此类作为一个包罗万象的控件,使用内置的DataGridView控件及其中包含的必需按钮。
例如:
// Using Statements.
namespace MyNameSpace
{
public class MyControl : TableLayoutPanel
{
// Declare instances of the controls you need.
CustomDataGridView myDataGridControl;
Button button1;
Button button2;
// etc...
public MyControl()
{
// Define TableLayoutPanel properties here,
// e.g. columns, rows, sizing...
myDataGridControl = new CustomDataGridView();
// Define your custom DataGridView here.
button1 = new Button();
// First button properties.
button2 = new Button();
// Second button properties.
// Assign these controls to TableLayoutPanel
// in the specified cells.
Controls.Add(myDataGridControl, 0, 0);
Controls.Add(button1, 0, 1);
Controls.Add(button2, 1, 1);
}
// Methods etc...
}
}