如何访问自定义控件中的数据网格?

时间:2018-08-13 01:10:11

标签: c# winforms krypton-toolkit

我是新手,因此决定使用Krypton Toolkit增强程序的GUI。 我能够将其加载到我的项目中。 我创建了一个名为mycontrol的控件,该控件具有一个名为mydatagrid的KryptonDataGridView的问题。

在我的表单中,我有以下代码:

public partial class Form1 : KryptonForm
{
    private KryptonPage[] mycontrolpage;
    private Control mycontrolcontent;
    public Form1()
    {
        InitializeComponent();
    }

    private KryptonPage NewmycontrolPage()
    {
        mycontrolcontent = new mycontrol();
        KryptonPage page = new KryptonPage("mypage", null, "OS mypage");
        // Add the control for display inside the page
        mycontrolcontent.Dock = DockStyle.Fill;
        page.Controls.Add(mycontrolcontent);

        // Document pages cannot be docked or auto hidden
        page.ClearFlags(KryptonPageFlags.DockingAllowAutoHidden | KryptonPageFlags.DockingAllowDocked);

        return page;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        // Setup docking functionality
        KryptonDockingWorkspace w = kryptonDockingManager.ManageWorkspace(kryptonDockableWorkspace);
        kryptonDockingManager.ManageControl(kryptonPanel, w);
        kryptonDockingManager.ManageFloating(this);

        mycontrolpage = new KryptonPage[] { NewmycontrolPage() };
        kryptonDockingManager.AddToWorkspace("Workspace", mycontrolpage);
    }
}

我的问题是如何访问mycontrol中的网格?

1 个答案:

答案 0 :(得分:0)

没有一些代码,您可以随时查看示例。 要么 一些代码片段:

    internal ComponentFactory.Krypton.Toolkit.KryptonDataGridView dgvRules;

然后...

            int offset = dgvRules.Rows.Add((bool)condition, name, description, applied);
            KryptonDataGridViewCheckBoxCell dataGridViewCell = dgvRules.Rows[offset].Cells[0] as KryptonDataGridViewCheckBoxCell;
            if (condition == Tribool.Unknown
                || accumulationRules[offset] == Tribool.Unknown)
            {
                dataGridViewCell.ReadOnly = condition == Tribool.Unknown;
                dataGridViewCell.ThreeState = true;
                dataGridViewCell.Value = CheckState.Indeterminate;
            }
            else
            {
                dataGridViewCell.Value = (CheckState)accumulationRules[offset];
            }