永发信息网

c#中ControlPaint.DrawReversibleFrame(thisform.RectangleToScreen(SelectRect), Col

答案:2  悬赏:70  手机版
解决时间 2021-03-07 16:45
c#中ControlPaint.DrawReversibleFrame(thisform.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);这一句是什么意思???、
最佳答案
这种现象我也遇到过,主要的原因是因为窗体上的控件太多,而且过多的设置了控件的Ancher属性,使窗体重绘的控件过多,或者是设置窗体的TransparencyKey的属性,我的解决方案就是用的画虚框的方法,那个程序已经找不着了,给你简单写了个右边框拉伸的,代码如下

//不要设置窗体的TransparencyKey的属性

Rectangle bolderRight;
Rectangle drawRect;
bool draw = false;
int bolderWidth = 4;
int lastWidth = -32000;

private void Form1_Load(object sender, EventArgs e)
{
bolderRight = new Rectangle(this.Width - bolderWidth, 0, bolderWidth, this.Height);
drawRect = new Rectangle(this.Location, this.Size);
}

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left || bolderRight.Contains(e.Location))
{
this.Cursor = Cursors.SizeWE;
draw = true;
}
}

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (bolderRight.Contains(e.Location))
this.Cursor = Cursors.SizeWE;
else
this.Cursor = Cursors.Default;
if (draw)
{
if (lastWidth != -32000)//擦出上一次绘制的边框
ControlPaint.DrawReversibleFrame(new Rectangle(drawRect.Location, new Size(lastWidth, drawRect.Height)), Color.Black, FrameStyle.Dashed);
drawRect.Width = MousePosition.X - this.Left;
ControlPaint.DrawReversibleFrame(drawRect, Color.Black, FrameStyle.Dashed);
lastWidth = drawRect.Width;
}
}

private void Form1_MouseUp(object sender, MouseEventArgs e)
{
draw = false;
ControlPaint.DrawReversibleFrame(drawRect, Color.Black, FrameStyle.Dashed);
this.Size = drawRect.Size;
lastWidth = -32000;
}

private void Form1_Resize(object sender, EventArgs e)
{
bolderRight = new Rectangle(this.Width - bolderWidth, 0, bolderWidth, this.Height);
drawRect = new Rectangle(this.Location, this.Size);
}
全部回答
rect src = new rect();// 图片 rect dst = new rect();// 屏幕 src.left = bx; src.top = by; src.right = bx + w; src.bottom = by + h; dst.left = x; dst.top = y; dst.right = x + w; dst.bottom = y + h; canvas.drawbitmap(blt, src, dst, null); 应该能看懂吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
用数学归纳法证明.在验证当n=1等式成立时.其
一岁宝宝感冒发烧吃什么药好
瘦骨如柴的近义词
割禾塘我想知道这个在什么地方
单选题封建王朝推行重农抑商政策的根本目的是
安瓶用后面部怎么不吸收??
郴州大道到郴州人民医院南院要坐好多路公交车
川航旅游(凉山分公司)怎么去啊,有知道地址的
描写动物园的词语
我家德牧不赶羊,圈羊。只跟人跑,咋训哟
西安格力空调专卖教您如何鉴别真假格力空调
【Thank you very muchfor】
抽风机接电后动一下就不再转是什么原因
三九绿园大酒店地址有知道的么?有点事想过去
劳动仲裁赔偿金是怎么计算的, 工作已满一年
推荐资讯
为什么JAVA有的要在linx下开发?windows下不是
辣栈香辣牛蛙火锅怎么去啊,有知道地址的么
衣点缘这个地址在什么地方,我要处理点事
一个笼子里装有鸡和兔子共六只,一共有二十条
在FIDIC合同条件下,有权将工程的部分项目的
如何把修改ID器克隆注册的ROS变为试用版的方
全民钓鱼为什么老是自动退出?
坳里是什么意思
【12dog】...whenhesawadogcominginsidethe..
!!!美国每年共收入多少钱的货币税?在中国
哪些人不适合做胃造瘘
新鲜的银杏可以生吃吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?