【发布时间】:2017-11-10 09:15:24
【问题描述】:
我有一个应用程序 A 监听应用程序 B(使用 Hook)
ListBox 1 = 我桌面上所有带有按钮或文本框的应用程序
如你所见,我已经有了红色矩形,我可以使用两种方法:
var dc = GetWindowDC((LBListControl.SelectedItem as Data).Value);
using (Graphics g = Graphics.FromHdc(dc))
{
g.DrawRectangle(Pens.Red, 0,0,50,20);
g.Dispose();
g.ReleaseHdc(dc);
}
// paintedRectangle = lRectangle[i];
//ControlPaint.DrawReversibleFrame(paintedRectangle, SystemColors.Highlight, FrameStyle.Dashed);
// -> 第二种方法。 这是我在更改 ListBox.SelectedIndex 时调用的函数
private void LBListControl_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
PaintRedRectangle(LBListControl.SelectedIndex);
}
catch (ArgumentOutOfRangeException)
{
}
}
lRectangle 是一个列表,其中包含我的按钮/文本框的 X、Y(宽度/高度由我自己设置)。
我听说使用手柄可以更改控制器的 BorderStyle / BorderColor。如果是真的,我没有找到任何相关信息,我想知道你是否知道。
否则,当我想向其他人展示时,我怎么能抑制我的 RedRectangle 呢?
顺便说一句:使用 g.ReleaseHdc(dc);无效参数无效(不知道为什么)
提前谢谢你
【问题讨论】:
-
我猜你不需要改变边框颜色,你只需在它们的父图形对象上画一个边框围绕就足够了。跨度>
-
当我在我的列表框中选择它们时更改文本框和按钮的边框颜色(我的应用程序 A 图片上的右侧列表框)。编辑:没看到它是一个链接!会读(一开始没找到)
-
好吧,我的错,我昨天通过:stackoverflow.com/questions/9768938/…(你也在这里评论过:))但我没有尝试你在这里展示的方法:stackoverflow.com/questions/17466067/… 编辑:是的,我愿意想在它们周围画一个边框(这就是为什么我要画一个 RedRectangle,但我不能把它抹去只有一个矩形
-
您可能还会发现这篇文章很有用Put dotted border around all controls.