winfrom中怎么实现每个新窗体或者每个新选项卡的tab中的控件和功能一样

DQYDXT 2021-03-24 09:11:19
各位大佬好,前天发了一个帖子,基本没人回复
惨啊,最近在编写一个结构计算软件
想实现类似于下面的的一个商业软件的界面

电机新建按钮,每次都会生成一样的新的工作界面/tab/form之类的,然后自动命名“工程1”、“工程2”...
这个商业软件我看他的程序包吗,应该是通过c++实现的
请问,在C#中,怎么通过选项卡实现呢,每添加一个工程现在在新的tabpage中,然后里面的控件和功能一样
或者有咩有其他好的处理方法
急求各位大佬啊!
csdn分数太少了
各位大佬见谅
...全文
406 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
desperaso 2021-03-24
  • 打赏
  • 举报
回复
自己做一个,比较简单。随手改了一个,参考
链接:https://pan.baidu.com/s/1FfsFio4GFWfZqZ6TACzF4g
提取码:684p
可自定颜色、点击关闭事件、能否拖动、关闭等等
DQYDXT 2021-03-24
  • 打赏
  • 举报
回复
引用 13 楼 desperaso 的回复:
接楼上
看了大佬们的例子,我终于知道什么是隔行如隔山,特么的,我是学了个鬼C#啊,我是在玩泥巴啊 这个我以前看到过,找皮肤的时候发现过Cskin这个控件,是个大神开发的uI框架,太强了吧,这个还有服务器,又是报表。。哎 我看下研究下
SubMain 2021-03-24
  • 打赏
  • 举报
回复
把相同的功能放到UserControl中,点击新建后,new一下这个UserControl,然后添加窗口中。
DQYDXT 2021-03-24
  • 打赏
  • 举报
回复
感谢大佬,昨天大概搜了下百度,好像是包装用户控件的方法,目前来说我的C#水平还一般,把这么多控件都组合在一个用户控件中的话,写用户控件是不是代码量很大
desperaso 2021-03-24
  • 打赏
  • 举报
回复
接楼上
Bridge_go 2021-03-24
  • 打赏
  • 举报
回复
把你这工程界面包装成一个用户控件就可以了
desperaso 2021-03-24
  • 打赏
  • 举报
回复
引用 9 楼 DQYDXT 的回复:
大佬这个确实赞啊,我下载下来看了,是wpf的,wpf我确实不会啊 而且还要学习xmal语言
winform也有啊, http://bbs.cskin.net/thread-15956-1-1.html 里面的TabControl.cs 效果及使用一样
DQYDXT 2021-03-24
  • 打赏
  • 举报
回复
求各位大佬帮助啊
DQYDXT 2021-03-24
  • 打赏
  • 举报
回复
引用 5 楼 desperaso 的回复:
自己做一个,比较简单。随手改了一个,参考 链接:https://pan.baidu.com/s/1FfsFio4GFWfZqZ6TACzF4g 提取码:684p 可自定颜色、点击关闭事件、能否拖动、关闭等等
我明白您的意思了,其实还用用户控件,对吧
  private void Button_Click(object sender, RoutedEventArgs e)
        {
            num++;
            tabControl.Add_Item("  编辑-"+num+"  ", new UControl(Colors.Red, "第"+num+"项"));
        }
包装成一个usercongtrol,然后每增加一个tabpage,新加一个usercontrol
DQYDXT 2021-03-24
  • 打赏
  • 举报
回复
引用 8 楼 morliz子轩 的回复:
[quote=引用 7 楼 DQYDXT 的回复:][quote=引用 6 楼 morliz子轩的回复:]用TabControl或XtraTabControl,都可以完全实现,可以新增N个TabPage页面而已。有什么难度? 如果想把它做成UserControl封装成自己的,也完全可以。可以写一些方法调用和DAL层的调用关系进去。
我是学土木的,c#的水平只够拖拖控件,完成基本逻辑[/quote] 那你就从最基础的WinForm控件开始,即TabControl。网上有一大把new TabPage的方法。 给你写个demo吧:

//将form窗体加载到TabPage中。
static void AddToTabCtrl(Form form, TabControl tab, string caption)
{
    var page = new TabPage(caption);
    tab.Controls.Add(page);
    form.TopLevel = false;
    form.ControlBox = false;
    form.BringToFront();
    form.Show();
    form.Dock = DockStyle.Fill;
    form.FormBorderStyle = FormBorderStyle.None;
    form.WindowState = FormWindowState.Maximized;
    page.Controls.Add(form);
}

//注意,第一个form参数,就可以传入的时候,用new就行了。
[/quote] 您这个我大概懂了,之前也查过类似的方法,意思就是新建一个form,里面布置好统一的控件,然后把这个from嵌入到主界面的tabcontrol中,对吧 然后每次新增一个tabpage,就new 一个新的form嵌入新的tabpage中对吗
DQYDXT 2021-03-24
  • 打赏
  • 举报
回复
引用 5 楼 desperaso 的回复:
自己做一个,比较简单。随手改了一个,参考 链接:https://pan.baidu.com/s/1FfsFio4GFWfZqZ6TACzF4g 提取码:684p 可自定颜色、点击关闭事件、能否拖动、关闭等等
大佬这个确实赞啊,我下载下来看了,是wpf的,wpf我确实不会啊 而且还要学习xmal语言
morliz子轩 2021-03-24
  • 打赏
  • 举报
回复
引用 7 楼 DQYDXT 的回复:
[quote=引用 6 楼 morliz子轩的回复:]用TabControl或XtraTabControl,都可以完全实现,可以新增N个TabPage页面而已。有什么难度? 如果想把它做成UserControl封装成自己的,也完全可以。可以写一些方法调用和DAL层的调用关系进去。
我是学土木的,c#的水平只够拖拖控件,完成基本逻辑[/quote] 那你就从最基础的WinForm控件开始,即TabControl。网上有一大把new TabPage的方法。 给你写个demo吧:

//将form窗体加载到TabPage中。
static void AddToTabCtrl(Form form, TabControl tab, string caption)
{
    var page = new TabPage(caption);
    tab.Controls.Add(page);
    form.TopLevel = false;
    form.ControlBox = false;
    form.BringToFront();
    form.Show();
    form.Dock = DockStyle.Fill;
    form.FormBorderStyle = FormBorderStyle.None;
    form.WindowState = FormWindowState.Maximized;
    page.Controls.Add(form);
}

//注意,第一个form参数,就可以传入的时候,用new就行了。
DQYDXT 2021-03-24
  • 打赏
  • 举报
回复
引用 6 楼 morliz子轩的回复:
用TabControl或XtraTabControl,都可以完全实现,可以新增N个TabPage页面而已。有什么难度? 如果想把它做成UserControl封装成自己的,也完全可以。可以写一些方法调用和DAL层的调用关系进去。
我是学土木的,c#的水平只够拖拖控件,完成基本逻辑
morliz子轩 2021-03-24
  • 打赏
  • 举报
回复
用TabControl或XtraTabControl,都可以完全实现,可以新增N个TabPage页面而已。有什么难度? 如果想把它做成UserControl封装成自己的,也完全可以。可以写一些方法调用和DAL层的调用关系进去。

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧