社区
C#
帖子详情
急!.Net 中開制做winForm自定議控件時如何得到父窗口的顏色
hedahong
2006-01-16 04:29:54
在開發winForm自定議控件時如何得到父窗口的顏色?
如用(c#):
private Color _BColor = this.Parent.BackColor;
又無法通過編譯。
...全文
113
6
打赏
收藏
急!.Net 中開制做winForm自定議控件時如何得到父窗口的顏色
在開發winForm自定議控件時如何得到父窗口的顏色? 如用(c#): private Color _BColor = this.Parent.BackColor; 又無法通過編譯。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fangsang
2006-01-18
打赏
举报
回复
this.FindForm().BackColor
hedahong
2006-01-18
打赏
举报
回复
謝謝各位的回復,問題解決了。在這裡與大家分享一下。
1.在開發window 窗體的自定議控件時不能用"this.父容器"的寫法,不然都報錯,因為在設計時他沒有父容器。
2.後來我發現控件本身有一個BackColor屬性,開發自定義控件時默認是續承UserControl的如:
namespace ctlClock
{
public partial class myUserControl : UserControl
{
.............
因為每當我把我做的自定義控件拖到窗體裡,我發現它他有一個BackColor屬性,且和當前窗體的BackColor一樣。所以在設計控件時private _Bcolor=BackColor;就可以了。至於這個BackColor屬性它自身是如何實現的(也就是說使用時拖出時他和當前窗的BackColor是一樣的),我向上瀏覽了幾層基類都沒有看到他的BackColor屬性的實現,雖然找到了有一個BackColor屬性可用,但是這能在定義時這樣寫:
namespace ctlClock
{
public partial class myUserControl : UserControl
{
private Color _BColor = BackColor;
......
像上面這樣會報錯,你隻能在方法或構造函中訪問這個BackColor,我也不知道是什麼原因.
anningning821009
2006-01-16
打赏
举报
回复
Color a=this.FindForm().BackColor;
parent不一定是窗体
而FindForm检索控件所在的窗体。
xuemingfeng
2006-01-16
打赏
举报
回复
private Color _BColor = ((Form)this.Parent).BackColor;
感觉这句是不正确的,this.Parent不一定是窗体
this.Parent 应该是 Control 类型,你试一下这个
if(this.Parent!=null)
{
Color color=(this.Parent as Control).BackColor;
}
hedahong
2006-01-16
打赏
举报
回复
不行呀,兄弟,this在控件開發中不可用。
MyLf
2006-01-16
打赏
举报
回复
private Color _BColor = ((Form)this.Parent).BackColor;
HDU-ACM2096
小明A+B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 36057 Accepted Submission(s): 17060 Problem Description 小明今年3岁了, 现在他已经能够认识10
[HDU 2096] 小明A+B
[HDU 2096] 小明A+B 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2096 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<algori...
HDU 2096 小明A+B
http://acm.hdu.edu.cn/showproblem.php?pid=2096 Problem Description 小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能够进行100以内的非负整数的加法计算.对于大于等于100的整数, 小明仅保留该数的最后两位进行计算, 如果计算结果大于等于100, 那么小明也仅保留计算结果的最后两位.例如, 对于小明来说:...
HDU ACM 11 2096 小明A + B
#include using namespace std; int main() { __int64 Lu, Hui; int n; cin >> n; while (n--) { cin >> Lu >> Hui; __int64 Yi = Lu + Hui; if (Yi >= 100)
hdu2096(数求余,超水题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2096 直接上AC代码: #include<stdio.h> int main(){ int T,A,B; int ans; scanf("%d",&T); while(T--){ ans = 0; scanf("%d%d",&A,&B...
C#
111,128
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章