由于就VCL而言,TTabSheets不是表单的父级(不想使用动态RTL和其他语言的插件),我必须手动处理调整大小.我这样做如下:
var
ChildHandle : DWORD;
begin
If Assigned(pcMain.ActivePage) Then
begin
ChildHandle := FindWindowEx(pcMain.ActivePage.Handle, 0, 'TfrmPluginForm', nil);
If ChildHandle > 0 Then
begin
SetWindowPos(ChildHandle, 0, 0, 0, pcMain.ActivePage.Width, pcMain.ActivePage.Height, SWP_NOZORDER + SWP_NOACTIVATE + SWP_NOCOPYBITS);
end;
end;
Run Code Online (Sandbox Code Playgroud)现在,我的问题是当应用程序调整大小时,TGroupBox中的所有TGroupBox和TLabel都会闪烁.不在TGroupboxes内的TLabel很好,不会闪烁.
我试过的事情:
有任何想法吗?
有很多文章解决Windows窗体中的闪烁问题.大多数人建议设置DoubleBuffered = true或设置一堆ControlStyle标志.但是,这些都不能帮助减少TextBox闪烁.
以下是一些相关问题:
要重现该问题,请创建一个新的WinForms项目,添加一个TextBox,启用多行,禁用自动换行,添加一堆文本,设置Anchor为Left + Right + Top + Bottom.现在运行并调整大小.文字闪烁.对于几个嵌套TableLayoutPanels中的文本框,调整大小时的闪烁更糟.
应用上述问题中提出的解决方案最好不要修复闪烁; 如果我得到实验并设置受保护ControlStyle,TextBox我可以完全打破它(通过启用UserPaint),但不能消除闪烁.
那么,有没有办法解决TextBox中文本的闪烁问题?
我的WinForms应用程序有一个TextBox,我将其用作日志文件.我正在附加没有使用闪烁形式的文本TextBox.AppendText(string);,但是当我尝试清除旧文本时(因为控件的.Text属性达到.MaxLength限制),我得到了可怕的闪烁.
我正在使用的代码如下:
public static void AddTextToConsoleThreadSafe(TextBox textBox, string text)
{
if (textBox.InvokeRequired)
{
textBox.Invoke(new AddTextToConsoleThreadSafeDelegate(AddTextToConsoleThreadSafe), new object[] { textBox, text });
}
else
{
// Ensure that text is purged from the top of the textbox
// if the amount of text in the box is approaching the
// MaxLength property of the control
if (textBox.Text.Length + text.Length > textBox.MaxLength)
{
int cr = textBox.Text.IndexOf("\r\n");
if (cr > 0)
{
textBox.Select(0, cr + 1);
textBox.SelectedText = string.Empty;
} …Run Code Online (Sandbox Code Playgroud) 我有一个具有背景的Windows窗体应用程序.在其中,我有一个透明背景的flowlayoutpanel.当我滚动时,会发生以下情况:

我也看到一些闪烁.我已经尝试了所有的双缓冲业务,但它不起作用.
有什么建议?
我在WPF动画中撕裂和闪烁时遇到麻烦.我有一个玩具应用程序来演示这些问题.该应用程序在屏幕上设置了正方形动画.方块的边缘显示撕裂,整个动画感觉不平滑.
穿孔器显示> 60fps,~10mb视频内存,0 IRT.
我在两台新的高端计算机上尝试了这一点,并且都显示了相同的不良动画(> 1gb vram,quad core等).
IE11中的奇怪问题,当使用鼠标滚轮或光标键时,以下项目的固定背景会闪烁.肯定是这是一个错误.
网站:http://gerbrandy.zitemedia.nl:88 /
我使用脚本来调整背景比例,但这不是问题,因为滚动时resize事件不会触发,所以这不是脚本的问题.它与固定定位元素有关.在所有其他浏览器中,此脚本可以使用几年.
我不知道如何解决这个问题.尝试了几件事,但不知道如何禁用javascript例如但不应该是这种情况.我在Windows 8.1上使用IE11.
有人对此有相同的经验,你知道如何解决这个问题吗?
这个问题可能被视为使用ownerdraw和virtualmode在listview中闪烁的后续行动.
我有一个ListView控件Virtual mode,我尝试执行自定义绘图.项目渲染通过以下方法覆盖完成:
protected override void OnDrawItem(DrawListViewItemEventArgs eventArgs)
Run Code Online (Sandbox Code Playgroud)
如引用的问题所述,自定义绘图会在鼠标悬停事件上引入闪烁.调试器告诉我这是由于过多的自定义绘制事件被触发而发生的.
现在 - 引用问题的接受答案告诉我们:
这是.NET的ListView中的一个错误,你不能通过双缓冲解决它.
那么,这些信息有多可靠?这真的是个错误吗?或者我们可能只是试图切断部分消息并希望它不会改变可见行为?
这是真的,如果我有我的所有者绘制例程ListViewin in Virtual Mode,我可以抑制这些Custom Draw事件并且只执行我的绘图WM_PAINT或者,也许,这在某些情况下是不正确的?
System.Windows.Forms控制能够在WM_PAINT不改变其初始行为的情况下完成所有绘画的前提条件是什么?
我有一个问题,我的css3转换正在影响页面上的其他元素,甚至导致它们闪烁.我看到另一篇关于此的帖子,但他们没有解决这个问题.
http://scosha.mybigcommerce.com/w107b/当您滚动浏览导航时,您会看到动画css3转换.它在firefox中工作正常,没有闪烁但是使用chrome和safari,效果非常明显,你可以在下拉菜单项和页脚文本中看到它.
我想知道为什么webkit-backface-visibility像那种通用的阿司匹林可以解决或加剧各种各样的异构问题,主要与工件和闪烁有关.
我已经阅读并理解了backface-visibility它的真正含义:当不面向屏幕时,它控制着三维旋转的物体.有一个不错的,简单明了的演示在这里
但我很好奇为什么,每次我在CSS世界中都有奇怪的故障,完全与3D旋转及其隐藏的背面无关,应用于backface-visibility有问题的层或其中一个祖先通常会帮助或使事情变得更糟,但很少会做任何事情.我在谈论类似的事情
有趣的是,总是在我简陋的经历中,backface-visibility:hidden倾向于解决固定定位相关的东西,并且backface-visibility:visible是闪烁的"最佳".同样有趣的是,在Chrome和Safari中,副作用是不同的,但男孩有!
我在一个Visual HTML创建者工作,所以情况是我有闪烁/工件是相当复杂的(即几个层上的动画,固定元素后面的滚动div,绝对超过z-index ....)
有人可以开导我吗?
我有一个WPF应用程序,它是一个全屏自助服务终端应用程序.它实际上是一个非常复杂的应用程序,但这里有一些显示基本概念的代码.基本上,每当用户从一个屏幕进入下一个屏幕时,就会出现一些严重的闪烁,从而打开新窗口.在严重的情况下,桌面会在新屏幕显示之前显示几秒钟.在这个示例代码中不会发生这种情况,因为它非常简单,但添加了一些按钮和样式,你会看到它.
App.xaml.cs:
public partial class App : Application {
Manager mManager;
public App() {
mManager = new Manager();
Window1 screen1 = new Window1(mManager);
mManager.Screen1 = screen1;
try {
this.Run(screen1);
} catch (Exception e) {
System.Console.WriteLine(e.ToString());
} finally {
Application.Current.Shutdown();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Window1.xaml.cs:
public partial class Window1 : Window {
Manager Manager{get; set;}
public Window1(Manager inManager) {
InitializeComponent();
Manager = inManager;
}
private void OnChangeScreen(object sender, RoutedEventArgs e) {
Manager.OpenScreen2();
}
}
Run Code Online (Sandbox Code Playgroud)
Window2.xaml.cs:
public partial class Window2 : Window { …Run Code Online (Sandbox Code Playgroud) flicker ×10
c# ×3
winforms ×3
.net ×2
css ×2
css3 ×2
wpf ×2
animation ×1
css-position ×1
delphi ×1
delphi-xe ×1
fullscreen ×1
groupbox ×1
html5 ×1
javascript ×1
listview ×1
ownerdrawn ×1
scroll ×1
tearing ×1
textbox ×1
tpagecontrol ×1
transparent ×1
webkit ×1