【问题标题】:Application with Chrome-Style Tabs using EasyTabs in WinForms在 WinForms 中使用 EasyTabs 的带有 Chrome 样式标签的应用程序
【发布时间】:2019-07-01 12:57:57
【问题描述】:

我正在尝试使用 WinForms 中的 EasyTabs 创建带有 Chrome 样式选项卡的 C# 应用程序,但我收到以下错误代码:

设计者必须创建一个“EasyTabs.TitleBarTabs”类型的实例,但它不能,因为该类型被声明为抽象。

我已按照下面的 Youtube 教程作为指导。

https://www.youtube.com/watch?v=WVFjegJK8EY

代码:

using System;
using EasyTabs;

namespace WindowsFormsApp1
{
    public partial class AppContainer : TitleBarTabs
    {
        public AppContainer()
        {
            InitializeComponent();

            AeroPeekEnabled = true;
            TabRenderer = new ChromeTabRenderer(this);
        }

        public override TitleBarTab CreateTab()
        {
            return new TitleBarTab(this)
            {
                Content = Form1
                {
                    Text = "New Tab"
                }
            };
        }

        private void AppContainer_Load(object sender, EventArgs e)
        {

        }
    }
}

【问题讨论】:

  • 我建议发布您编写的代码,而不是在 YouTube 上发布视频链接。突出显示您在代码中遇到的错误,这样会更容易为您提供帮助。
  • 感谢您的回复,我是这个网站的新手,忘记用它发布我的代码。
  • this article说看不到设计师是正常的。 “请注意,如果您尝试在 Visual Studio 设计器中查看 AppContainer 表单,您将看到:您将收到此错误,因为正如所解释的,设计器正在尝试绘制抽象的东西(我们的表单在扩展TitleBarTabs 而不是 Form),因此只有当您尝试在设计器中查看 Form 时才会抛出异常,否则完全有效。"
  • 据我了解,您没有问题。只要您正确遵循本教程,一切都会按预期运行。我建议启动您的应用程序以确保这一点,否则这似乎不是错误,这是正常的。
  • 好吧,那是另外一回事。我只是按照我在之前评论中发布的完全相同的文章进行操作,并且效果很好。如果您还有其他似乎无法修复的错误,我想他们值得提出另一个问题。

标签: c# winforms


【解决方案1】:

直接查看 AppContainer.cs 看到这个错误是正常的。

设计者必须创建一个“EasyTabs.TitleBarTabs”类型的实例,但它不能,因为该类型被声明为抽象。 让这不会阻止您实现您想要实现的目标。忽略错误,只需右键单击 AppContainer.cs 并选择 View Code

using EasyTabs;

namespace WindowsFormsApp1
{
    public partial class AppContainer : TitleBarTabs
    {
        public AppTabs()
        {
            InitializeComponent();

            AeroPeekEnabled = true;
            TabRenderer = new ChromeTabRenderer(this);
            Icon = mBible.Properties.Resources.appico;
        }

        public override TitleBarTab CreateTab()
        {
            return new TitleBarTab(this)
            {
                Content = new Form1
                {
                    Text = "New Tab"
                }
            };
        }
    }
}

这应该足以为您生成新标签了。

现在要轻松创建选项卡,让我们假设您有一个表单“MainForm”,并且您要生成的选项卡是“Form1”,这就是我们所做的

using System;
using System.Windows.Forms;
using EasyTabs;

namespace WindowsFormsApp1
{
    public partial class MainForm : Form
    {
        public static AppContainer tabbedApp = new AppContainer();

        public MainForm()
        {
            InitializeComponent();
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            tabbedApp.Tabs.Add(new TitleBarTab(tabbedApp)
            {
                Content = new Form1
                {
                    Text = "New Tab"
                }
            });
            tabbedApp.SelectedTabIndex = 0;

            TitleBarTabsApplicationContext applicationContext = new TitleBarTabsApplicationContext();
            applicationContext.Start(tabbedApp);

            this.Hide();
        }

    }
}

您始终可以通过在另一个表单上调用此代码轻松地向您的标签添加一个新标签

    AppContainer.tabbedApp.Tabs.Add(new TitleBarTab(AppContainer.tabbedApp)
    {
         Content = new Form2 { Text = "Another Tab" }
   });
   AppContainer.tabbedApp.SelectedTabIndex = 0;

我希望对任何寻求类似问题帮助的人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-19
    • 2013-09-18
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2022-08-17
    相关资源
    最近更新 更多