看看我的代码 是不是这个问题 关于C#控件自适应的代码

问题描述

namespacekeyshare{classAutoSizeFormClass{//声明结构,记录初始窗体的位置和控件大小publicstructControlRect{publicintLeft;publicintTop;publicintWidth;publicintHeight;}//声明对象记录当前大小publicList<ControlRect>Oldcontrol;//C两个函数,记录控件和窗体的初始大小publicvoidcontrolInitsize(Form1mFrom1){Oldcontrol=newList<ControlRect>();ControlRectcR;cR.Left=mFrom1.Left;cR.Top=mFrom1.Top;cR.Width=mFrom1.Width;cR.Height=mFrom1.Height;Oldcontrol.Add(cR);foreach(ControlcinmFrom1.Controls){ControlRectobjCtrl;objCtrl.Left=c.Left;objCtrl.Top=c.Top;objCtrl.Width=c.Width;objCtrl.Height=c.Height;Oldcontrol.Add(objCtrl);}}//控件自适应大小publicvoidcontrolautosize(Form1mForm1){//新旧窗体之间的比例floatwScale=(float)mForm1.Width/(float)Oldcontrol[0].Width;//floathScale=(float)mForm1.Height/(float)Oldcontrol[0].Height;intctrLeft0,ctrTop0,ctrWidth0,ctrHeight0;intctrNo=1;//控件序列号,默认为1foreach(ControlcinmForm1.Controls){ctrLeft0=Oldcontrol[ctrNo].Left;ctrTop0=Oldcontrol[ctrNo].Top;ctrWidth0=Oldcontrol[ctrNo].Width;ctrHeight0=Oldcontrol[ctrNo].Height;c.Left=(int)((ctrLeft0)*wScale);//新旧控件之间的线性比例。控件位置只相对于窗体,所以不能加+wLeft1c.Top=(int)((ctrTop0)*hScale);//c.Width=(int)((ctrWidth0)*wScale);//只与最初的大小相关,所以不能与现在的宽度相乘(int)(c.Width*w);c.Height=(int)((ctrHeight0)*hScale);//ctrNo+=1;}}}}

解决方案

解决方案二:
Oldcontrol未赋值或初始化。
解决方案三:
变量Oldcontrol==null了
解决方案四:
怎么解?求详细点

时间: 2024-08-02 23:07:09

看看我的代码 是不是这个问题 关于C#控件自适应的代码的相关文章

不依赖控件只使用代码对控件的TEXT属性分行怎么写?

问题描述 不依赖控件只使用代码对控件的TEXT属性分行怎么写? 不依赖控件只使用代码对控件的TEXT属性分行怎么写?那些别的方法实在是看不懂,有没有字符设置就能解决的? 解决方案 你说的是textbox允许多行?大概明白你的意思了,你想在textbox1.text里面换行?有多中方法,environment.newline或者"rn". 解决方案二: 如果是允许多行,可以在控件上勾选multiline,代码里可以写textbox.multiline=true

ASP.NET控件开发之“代码紧凑原则”

asp.net|控件|控件开发    我们知道制作一个控件,一般比只实现同样功能的模块要复杂,因为我们需要考虑更多的异常和适应性,才能达到我们整合和复用代码的效果.而当我们开发一个ASP.NET控件时,不管我们的控件有多么复杂的功能和UI表现,我们最终在客户端浏览器里得到的都只是HTML代码和脚本的组合.    而就是这些控件生成的HTML代码,它们的格式是不是就可以随意处理呢.那么不能随意又是什么意思?难道我们必须要保证HTML代码的排版,并保持HTML良好的层次缩进什么的吗?这里刚刚相反,我

关于ASP.NET自定义控件中子控件的HTML代码保持

asp.net|控件 ASP.NET自定义控件是个很好的模型,可以在网页中象堆积木般构筑软件,可以 使用大量的第三方控件来完成自己不擅长的功能.但自定义控件编写起来有一定难度. 一直以来,如何在ASPX设计时页面中保持子控件的生成代码问题因扰着我.近段研究了 一下微软的IE Webcontrol中的TreeView控件,终于搞清楚了此问题,不敢独享,特将它 总结了一下,并做了个示例工程,放在我网站上(http://www.aspxcontrol.com/blog)供网友 下载. 总结起来,要点如

asp.net微软图表控件使用示例代码分享

 这篇文章主要介绍了asp.net微软图表控件使用示例代码,有需要的朋友可以参考一下  代码如下: <configuration>   <system.webServer>     <handlers>       <remove name="ChartImageHandler" />       <add name="ChartImageHandler" preCondition="integrate

开源项目PullToRefreshScrollView控件怎么用代码控制进入刷新状态?

问题描述 开源项目PullToRefreshScrollView控件怎么用代码控制进入刷新状态? 开源项目PullToRefreshScrollView控件怎么用代码控制进入刷新状态? 解决方案 你改一下源码,把changeState改成public,你去控制状态

使用VS2010 C#开发ActiveX控件(下),完整代码打包下载_C#教程

其实如果我们不进行设置,只是修改了代码,运行程序以后,其出错界面如下图1所示: 开发ActiveX控件(下),完整代码打包下载_C#教程-vs2010使用教程 c"> 图1 抛出异常如下: ************** Exception Text ************** System.MethodAccessException: Attempt by security transparent method 'Rare.Card.Libary.Controls. ReadCardCo

如何在后台代码里生成这样的TextBlock控件?

问题描述 如何在后台代码里生成这样的TextBlock控件?就是文本和图片混合的,用c#写谢谢!<TextBlockName="myTest">asdfasdasdfasd<ImageSource="Joey.png"Height="20"/>234234234</TextBlock> 解决方案 解决方案二:WPF中的TextBlcok么??解决方案三:是的,WPF解决方案四:引用2楼wxcnl的回复: 是的,

请问一下这二个是什么控件(红框框圈的)?如没有类似的控件可以提供代码吗? 

问题描述 请问一下这二个是什么控件(红框框圈的)?如没有类似的控件可以提供代码吗? 谢谢你们!!! 解决方案 解决方案二:TabStrip...常用控件之一...解决方案三:下面那个是某种Grid控件...也是很常见的...解决方案四:谢谢!我试一下解决方案五:tabStrip一般不在工具条显示,需要使用时按以下操作:右击工具箱,选择部件,在部件对话框中选择控件,然后复选microsoftwindowscommoncontrol6.0(sp6),确定然后在工具箱中就有了解决方案六:Tab和dat

设置点击文本框或图片弹出日历控件的实现代码_javascript技巧

<input id="startDate" value="" readonly="true" type="text" style="cursor: pointer" class="user_datepicker "> <input class="canlderImg" data-tag="start" type="ima