社区
C#
帖子详情
如何通过按键来关闭另一窗口?
whh764224646
2012-09-07 12:08:43
我的结构是这样:
在PrsMain窗体tabControl控件的每一选项卡中嵌套了一窗体Prs_Zzmmsz、Prs_Zwlbsz....等(这些窗体都是通控件添选项卡然后加载窗体其),在选项卡中标签中重绘了关闭选项卡的按键,现在问题是当我关闭选项卡时,所嵌套的窗体不被关闭(我试运行中才发现关闭选项卡重新打开选项卡嵌套的窗体不更新数据)?如何解决这个问题,请前辈们指点!
...全文
291
18
打赏
收藏
如何通过按键来关闭另一窗口?
我的结构是这样: 在PrsMain窗体tabControl控件的每一选项卡中嵌套了一窗体Prs_Zzmmsz、Prs_Zwlbsz....等(这些窗体都是通控件添选项卡然后加载窗体其),在选项卡中标签中重绘了关闭选项卡的按键,现在问题是当我关闭选项卡时,所嵌套的窗体不被关闭(我试运行中才发现关闭选项卡重新打开选项卡嵌套的窗体不更新数据)?如何解决这个问题,请前辈们指点!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
andy1020tc
2012-09-13
打赏
举报
回复
楼主在tabControl中添加窗体 明显是有问题的 因为窗体的级别高于tabControl
tabControl只是个控件而已 你这样操作 实际上也只是在点选项卡时 也只是改变某一个窗体的level
让其显示在最上面而已 并没有让数据重新加载
还是把那些窗体换成datagridview之类的控件吧 显示数据而已 不要搞得太复杂
要是lz想用自定义控件 也可以 但没必要 在每个选项页里 添加显示数据的控件就行了
写好一个获取数据的方法
在你每次切换选项卡的时候 就执行这个方法 就能实现数据更新了
没必要去掉再添加 本来你切换以后 之前的就看不到了 去掉再添加是多此一举
whh764224646
2012-09-13
打赏
举报
回复
[Quote=引用 17 楼 的回复:]
楼主在tabControl中添加窗体 明显是有问题的 因为窗体的级别高于tabControl
tabControl只是个控件而已 你这样操作 实际上也只是在点选项卡时 也只是改变某一个窗体的level
让其显示在最上面而已 并没有让数据重新加载
还是把那些窗体换成datagridview之类的控件吧 显示数据而已 不要搞得太复杂
要是lz想用自定义控件 也可以 但没必要 在每个……
[/Quote]
谢谢老兄弟的见议!
但如何选项卡很多这样太乱了点吧!给操作人员操作起来去找相关的选项卡头都大了!
我的理念是简洁,操作人想操作那些就显示那些!不想操作了就关掉,也许任何东西都有它存在的理由吧!
whh764224646
2012-09-13
打赏
举报
回复
[Quote=引用 15 楼 的回复:]
直接REMOVE TABPAGE就可以,或者 TABPAGE 的 VISIBLE = FALSE
[/Quote]
谢谢!
但还是不行哦能否加你的QQ呢?我的QQ:191971159
我的代码如下:
加载自定义控件代码
#region 人事管理-人事档案管理
int aa = this.tabControl_Prs.TabPages.Count;
if (FrmName == "人事档案管理") //判断当前要打开的窗体
{
bool re = true;
foreach (TabPage page in tabControl_Prs.TabPages)
{
if (page.Text == FrmName)
{
re = false;
this.tabControl_Prs.SelectedTab = page;//激活窗体
break;
}
}
if (re)//如果没有找到
{
aa++;
tabControl_Prs.TabPages.Add(new TabPage(FrmName));
this.tabControl_Prs.TabPages[aa - 1].Controls.Add(newPrs_Rsdagl);
this.tabControl_Prs.SelectedIndex = aa - 1;//设置为活动窗口
}
}
#endregion
关闭选项卡代码
private void tabControl_Prs_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
int x = e.X, y = e.Y;
//计算关闭区域
Rectangle myTabRect = tabControl_Prs.GetTabRect(tabControl_Prs.SelectedIndex);
myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE_X + 3), 2);
myTabRect.Width = CLOSE_SIZE_X;
myTabRect.Height = CLOSE_SIZE_X;
//如果鼠标在区域内就关闭选项卡
bool isClose = x > myTabRect.X && x < myTabRect.Right && y > myTabRect.Y && y < myTabRect.Bottom;
if (isClose)
{
tabControl_Prs.TabPages.Remove(tabControl_Prs.SelectedTab);//关闭选项卡
}
}
}
恳请您的指点,再次表示感谢!
jcyluck
2012-09-12
打赏
举报
回复
直接REMOVE TABPAGE就可以,或者 TABPAGE 的 VISIBLE = FALSE
service4phones
2012-09-12
打赏
举报
回复
会员的头像怎么都变成了C了?
whh764224646
2012-09-12
打赏
举报
回复
[Quote=引用 12 楼 zhanglong19891129 的回复:]
引用 10 楼 的回复:
引用 9 楼 的回复:
appcation.showdowm(FROMNAME);这样可以关闭。。
错误:当前上下文中不存在名称“Appcation”
我改成Application.showdowm(newPrs_Rsdagl);
错误:“System.Windows.Forms.Application”并不包含“showdowm”的定义
我网……
[/Quote]
谢谢各位了!
在tabControl控件的选项卡中嵌套了窗体存在很多问题,我想把窗体改成一个自定义控件,我的想法是这样当关闭选项卡时就把嵌套在里面的自定义控件移除,当添加选项卡时又把加载进来!(这样达到关闭后重新打开数据能得到更新)
请问移除自定义控件又如何写代码?恳请前辈指点迷精!
zhanglong19891129
2012-09-11
打赏
举报
回复
[Quote=引用 10 楼 的回复:]
引用 9 楼 的回复:
appcation.showdowm(FROMNAME);这样可以关闭。。
错误:当前上下文中不存在名称“Appcation”
我改成Application.showdowm(newPrs_Rsdagl);
错误:“System.Windows.Forms.Application”并不包含“showdowm”的定义
我网上查到资料:
在c#200……
[/Quote]
我的英文很菜的,,所以单词不会写 正确的应该是这样的 Application.ShutDown(FromName);
在你重绘的按钮中这样去关闭 当前from;
LZ的问题应该是 选项卡中不能包含From吧,就是From不是当前选项卡的子控件.
whh764224646
2012-09-11
打赏
举报
回复
有朋友指点吗?
xiepanqi123
2012-09-10
打赏
举报
回复
试试((Form)tabControl1.TabPages[0].Container.Components[0]).Close();
不知道可不可行
whh764224646
2012-09-10
打赏
举报
回复
[Quote=引用 9 楼 的回复:]
appcation.showdowm(FROMNAME);这样可以关闭。。
[/Quote]
错误:当前上下文中不存在名称“Appcation”
我改成Application.showdowm(newPrs_Rsdagl);
错误:“System.Windows.Forms.Application”并不包含“showdowm”的定义
我网上查到资料:
在c#2005中Application.Terminate与Application.exit的区别Application->terminate是你想什么时候执行就什么时候执行。执行了之后系统会调用Application.exit是整个系统完全退出。
然后我这么用Application.Terminate(newPrs_Rsdagl);
还是错误,错误为“错误 1 “System.Windows.Forms.Application”并不包含“Terminate”的定义
期待前辈指点!若能有在QQ(191971159)上帮一把,本人不胜感激!
zhanglong19891129
2012-09-10
打赏
举报
回复
appcation.showdowm(FROMNAME);这样可以关闭。。
whh764224646
2012-09-10
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
试试((Form)tabControl1.TabPages[0].Container.Components[0]).Close();
不知道可不可行
[/Quote]
谢谢!你的代码我还不会什么用,能否详细的解释一下呢?
再加10分等待前辈们!
whh764224646
2012-09-09
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
ADD Remove 选型卡 就得了..数据有跟新的话 就在重新绑定下
[/Quote]
就是用了“Remove”啦,老兄!
我的代码如下:
加载窗口
int aa = this.tabControl_Prs.TabPages.Count;
#region 民族类别设置
if (FrmName == "民族类别设置") //判断当前要打开的窗体
{
bool re = true;
foreach (TabPage page in tabControl_Prs.TabPages)
{
if (page.Text == FrmName)
{
re = false;
this.tabControl_Prs.SelectedTab = page;//激活已打开的窗体
break;
}
}
if (re)//如果没有找到
{
//添加窗体
aa++;
newPrs_Mzlbsz.TopLevel = false;
newPrs_Mzlbsz.Visible = true;
tabControl_Prs.TabPages.Add(new TabPage(FrmName));
this.tabControl_Prs.TabPages[aa - 1].Controls.Add(newPrs_Mzlbsz);
this.tabControl_Prs.SelectedIndex = aa - 1;//设置为活动窗口
}
}
关闭选项卡(嵌有窗体的)
if (e.Button == MouseButtons.Left)
{
int x = e.X, y = e.Y;
//计算关闭区域
Rectangle myTabRect = tabControl_Prs.GetTabRect(tabControl_Prs.SelectedIndex);
myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE_X + 3), 2);
myTabRect.Width = CLOSE_SIZE_X;
myTabRect.Height = CLOSE_SIZE_X;
//如果鼠标在区域内就关闭选项卡
bool isClose = x > myTabRect.X && x < myTabRect.Right && y > myTabRect.Y && y < myTabRect.Bottom;
if (isClose)
{
tabControl_Prs.TabPages.Remove(tabControl_Prs.SelectedTab);
}
}
再加10分~~~
huguangwu
2012-09-07
打赏
举报
回复
没有太明白你的意思,能否发个设计图了解你的意思
zhanglong19891129
2012-09-07
打赏
举报
回复
ADD Remove 选型卡 就得了..数据有跟新的话 就在重新绑定下
kunkun0921
2012-09-07
打赏
举报
回复
关闭选项卡的同时,dispose掉选项卡中的窗体。
熙风
2012-09-07
打赏
举报
回复
你重新打开的时候没有重新加载窗体,所以没有更新数据
stonespace
2012-09-07
打赏
举报
回复
选项卡应该是不能关闭的,只能切换,不知道你说的关闭是什么意思?
按键
精灵通过句柄获取
窗口
坐标_
按键
精灵怎么获取同名
窗口
的句柄
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解。话题:
按键
精灵怎么获取同名
窗口
的句柄回答:命令名称: Search 遍历符合
窗口
命令功能: 遍历符合
窗口
标题的句柄保存到数组里 命令参数: 参数1 字符串型,
窗口
符合的标题 返 回 值: 字符串型,句柄数组 脚本例: (8.x语法) 码 //下面这句是遍历符合
窗口
标题("记事本")的句柄保存到数组(HwndEx)里 HwndEx = P...
如何用VB编程实现
关闭
WINDOWS
窗口
?
如何用VB编程实现
关闭
当前
窗口
的功能啊? 那位高手知道的帮帮忙啊? :我说的是
关闭
当前的WINDOWS
窗口
比如说我刚刚打开了一个名为ABC 的 文件夹
窗口
我现在想通过 用VB编程来实现
关闭
该
窗口
的功能? 请问该如何编写代码 怎么让他实现啊? 不的结束VB程序哦 ! '1.首行看WINDOWS
窗口
的标题是什么 '2.把标题加到以下的程序代码,即可. Option Explic...
【
按键
精灵】设定
窗口
大小与位置
各位有没有遇到过使用脚本挂游戏时,
窗口
偶尔会发生位置和大小改变,导致一些不太通用的脚本无法正常执行需要的命令的情况?比如你有一个2560x1440的主屏幕,以及一个1280x800的副屏幕,游戏
窗口
大小1920x1080,有时候你或你的家人会想着关掉屏幕显示,能省电啥的,再次开屏后,就发生了
窗口
位置大小与原来设定的脚本信息不一致,而且找图的照片也与游戏UI不一致。为了应对上面的问题,有没有一种方法可以将
窗口
信息绑定在一个变量中,只要判断
窗口
信息与设定是否一致然后修改
窗口
属性来达到避免
窗口
抖动……
pyqt5主
窗口
按键
弹出子
窗口
,并且父
窗口
自动退出
我们可以用QCoreApplication.instance().quit() 这个来实现对主
窗口
线程的退出,当然退出以后还得利用del来删除
窗口
,删除了
窗口
再调用另一个
窗口
的类。上一篇研究了主
窗口
通过
按键
弹出子
窗口
,这篇研究一下
按键
弹出子
窗口
后,主
窗口
自动退出。当然这里是可以在
按键
按下的时候触发退出。
PyQt5入门笔记1--------
按键
弹出另一个
窗口
学习PyQt的第一个程序,可以点击按钮,弹出一个新
窗口
。
C#
111,096
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章