Winform MDI窗体容器、权限、简单通讯
MDI窗体容器:
一般来说,窗体是顶级容器,不允许放在其他任何容器内,但是如果将某个窗体的IsMdiContainer属性设置为True,那此窗体就会成为窗体容器,可以在其中放入其他窗体
在内部的窗体不管怎么调整,是无法跳出其父级窗体容器的
注:如果想让内部窗体一直最大化并且不要其显示最大化最小化按钮,可将其FormBorderStyle设置为None,Win7系统另外需要将此窗体放入一个Panel容器中
private void 销售ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(); f2.WindowState = FormWindowState.Maximized; f2.FormBorderStyle = FormBorderStyle.None; f2.MdiParent = this; f2.Parent = panel1; f2.Show();
}
MDI窗体容器
另:内部窗体打开后是不会跟随外部窗体大小变化而自适应的,此时需要另想办法,比如可以在窗体大小改变事件中让内部窗体重新恢复普通并重新最大化
private void Form1_SizeChanged(object sender, EventArgs e)
{
foreach (var c in panel1.Controls)
{
if (c is Form2)
{
(c as Form2).WindowState = FormWindowState.Normal;
(c as Form2).WindowState = FormWindowState.Maximized;
} }
}
内部窗体自适应大小
权限:
比如我们做一个管理系统,根据登陆者的身份,显示一部分系统的功能,可以通过在数据库中建立一个权限等级,用数字代表,在获取到登陆者的对象信息之后进行判断,对部分功能进行隐藏
public Form1(Users u)
{
InitializeComponent(); if (!u.pre.Contains(""))
{
销售ToolStripMenuItem.Visible = false;
} if (!u.pre.Contains(""))
{
仓库ToolStripMenuItem.Visible = false;
} if (!u.pre.Contains(""))
{
财务ToolStripMenuItem.Visible = false;
} if (!u.pre.Contains(""))
{
综合管理ToolStripMenuItem.Visible = false;
}
}
权限
简单通讯:
类似QQ的即时通讯工具中,可以通过获取输入的信息、发送者对象信息、接受者对象信息,将此数据存入数据库,再从接受者一端通过Timer控件不停地获取数据库中消息,有新消息时显示从而实现
不过这种方法需要频繁的查找数据库,如果用户量过大则不宜使用
Users F = null;
Users T = null; public Form3(Users from, Users to)
{
InitializeComponent(); label1.Text = from.UserName;
label2.Text = to.UserName; F = from;
T = to;
} private void button1_Click(object sender, EventArgs e)
{
Context c = new Context();
c.from = label1.Text;
c.to = label2.Text;
c.txt = richTextBox2.Text;
c.state = false; new ContextData().Insert(c); richTextBox1.Text += F.NickName + "对" + T.NickName + "说:\r";
richTextBox1.Text += richTextBox2.Text + "\r\n";
richTextBox2.Text = "";
}
List<Context> cclist = new List<Context>();
private void timer1_Tick(object sender, EventArgs e)
{
cclist = new ContextData().Select(T.UserName, F.UserName); if (cclist.Count > )
{
foreach (var c in cclist)
{
richTextBox1.Text += c.from + "对" + c.to + "说:\r";
richTextBox1.Text += c.txt + "\r\n"; new ContextData().Update(c);
}
}
}
简单通讯主要部分
Winform MDI窗体容器、权限、简单通讯的更多相关文章
- Winform MDI窗体容器 权限 简单通讯
MDI窗体容器 权限 using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...
- Winform MDI窗体容器,权限以及简单通讯
MDI窗体容器: 一般来说,窗体是顶级容器,不允许放在其他任何容器内,但是如果将某个窗体的IsMdiContainer属性设置为True,那此窗体就会成为窗体容器,可以在其中放入其他窗体 在内部的窗体 ...
- MDI窗体容器 权限设置
MDI窗体容器:它可以让其它窗体在它的内部打开,无法超出它的范围将某个窗体的属性:IsMdiContainer设置为true - 窗口样式如何将其它窗体在它的内部打开?窗体对象名.MdiParent ...
- winform(MDI窗体容器、权限设置)
一.MDI窗体容器: 1.功能: 它可以让其它窗体在它的内部打开,无法超出它的范围 将某个窗体的属性:IsMdiContainer设置为true - 窗口样式 2.问题: (1)如何将其它窗体在它的内 ...
- MDI窗体容器、权限设置
一.MDI窗体容器: 1.功能: 它可以让其它窗体在它的内部打开,无法超出它的范围 将某个窗体的属性:IsMdiContainer设置为true - 窗口样式 2.问题: (1)如何将其它窗体在它的内 ...
- MDI窗体容器和权限设置.avi
一.MDI窗体容器 MDi窗体是装Form的容器.平常Form(窗体)就是平常展示的最高级别,但是MDI比Form还高级.它可以让其它窗体在它的内部打开,无法超出它的范围 1 创建:将某个窗体的属性: ...
- 【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器
一.打印控件 第一步先把打印对象搞出来. - printDocument 打印对象(将要打印的内容放到该对象里,从该对象里取内容打印) 设置他的PrintPage事件(对于要打印的每一页触发一次 ...
- MDI窗体容器--2016年12月15日
MDI窗体容器 多文档界面(Multiple-Document Interface)简称MDI窗体.MDI窗体用于同时显示多个文档,每个文档显示在各自的窗口中.MDI窗体中通常有包含子菜单的窗口菜单, ...
- winform窗体 控件【MDI 窗体容器】
MDI :窗体容器 -- 在窗体中放置窗体 属性 IsMdiContainer : 是否是窗体 -- 只有 Form 有此属性 Form2 f2 = new Form2(); ...
随机推荐
- Struts2返回json格式数据踩坑记录
事件起因 昨天提测修改冻结/解冻银行卡样式的功能,微姐测试过程中发现调用ajax请求耗时过长,今天来排查,发现浏览器请求/finance/ajax/freeze/ajaxGetShopLists时,对 ...
- Tomcat部署web项目,如何直接通过域名访问,不加项目名称
问题:下面的问题是互联网上问得比较多的,但是显然都是同一个问题. JavaWeb项目部署到tomcat服务之后设置不需要输入项目名称即可访问? Tomcat部署web项目,如何直接通过域名访问,不加项 ...
- jquery select操作大全
添加option $("#ID option").each(function(){ if($(this).val() == 111){ $(this).remove(); } }) ...
- wireshark抓包工具简介以及tcp三次握手的一些含义
wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了.为了安全考虑, ...
- 【学习笔记】Struts2之配置处理结果
Action只是Struts2控制器的一部分,所以它不能直接生成对浏览者的响应.Action只负责生成响应的视图组件,通常是JSP页面,而Action会为JSP页面提供显示数据. Ac ...
- DHT协议C++实现过程中各种问题
---恢复内容开始--- 博主是个菜鸟,什么地方写的不对或者理解有误的地方还请指正出来. DHT协议是BT协议中的一部分,也是一个辅助性的协议.HTTP协议中用 来定位资源也就是html文本是用URL ...
- Redis 3.0 与 3.2 配置文件变化
一.Redis3.0 与 3.2 配置文件对比 1. clone redis git clone https://github.com/antirez/redis.git 2. checkout分支 ...
- Apache SolrCloud安装
1.介绍 SolrCloud通过ZooKeeper集群来进行协调,使一个索引进行分片,各个分片可以分布在不同的物理节点上,多个物理分片组成一个完成的索引Collection.SolrCloud自动支 ...
- .Net Core--目录
参考资料: .Net Core官网 https://www.microsoft.com/net/core 官方文档: https://docs.asp.net 博客园中文文档: http://www. ...
- javascript 心得
1.&&和||等逻辑判断运算标记可以当成条件运算来使用例如: var a = b = c = "12"; (a=="13"&& ...