Tag: controls

c#:如何确定当前是否显示Scrollable控件的ScrollBar?

有没有办法检查当前是否显示控件的滚动条? 我想使用它,以便我可以确定如何调整Scrollable控件的子项的大小,这在某种程度上取决于是否显示ScrollBar(可以动态调整Scrollable控件的大小)。

我想要回忆我的记忆! 我怎样才能真正处置控件?

我有一个我正在制作的应用程序,它创建了大量的窗口控件(按钮和标签等)。 它们都是通过function动态制作的。 我遇到的问题是,当我删除控件并处理它们时,它们不会从内存中删除。 void loadALoadOfStuff() { while(tabControlToClear.Controls.Count > 0) tabControlToClear.Controls[0].Dispose(); //I even put in: GC.Collect(); GC.WaitForPendingFinalizers(); foreach(String pagename in globalList) tabControlToClear.Controls.Add(MakeATab(pagename)); } TabPage MakeATab(string tabText) { TabPage newT = new MakeATab(); newT.Text = tabText; //Fill page with controls with methods like this return newT; } 现在由于某种原因,这只是没有给我回忆,所以当进程运行5次时,我最终会出现内存不足的情况。 我是对象和控制处置的新手,但是通过庞大的网络仍然没有给我任何指示,所以如果你们有任何想法,我会很高兴听到它。 更新:我一直在观察用户对象的创建和销毁(taskmanager),并注意到我创建了一个标签页,添加了一个单击处理程序,添加了一个面板,添加了两个按钮,包括点击处理程序,工具提示和背景图像(我认为这是哪里问题是)。 该应用程序说它创建了8个新项目,但是当我运行我的处理时,我只从内存中删除4个。 我一直试图删除事件处理程序,但它似乎没有任何区别。 解决!!! 当我向面板添加新项目时,我向他们传递了一个工具提示(愚蠢,但我正在学习)。 对于任何有同样问题的人,(感谢下面的人的评论和指示。我发现,为了使控件真正处置(因为我意识到我错误地把它),是: 1:如果你有工具提示,请确认它是可以访问的! 不要做我想做的事! […]

处理用户控件,真的是要编辑.designer.cs文件吗?

对于具有必须处理的内部数据结构的用户控件,是将该代码添加到.designer.cs文件中的Dispose方法的正确位置,还是存在我们打算使用的事件? 编辑 :这是一个winforms用户控件。

C#有选择地关闭显示器

C#中有没有办法识别连接到系统的所有显示器,并选择打开,关闭或低功率的显示器? 我在SO上发现的先前问题只是关闭所有显示器。

如何为ListviewSubItem设置工具提示

我在详细信息视图中有一个ListView控件(将列表显示为网格的视图) mListView.View = View.Details; mListView.mLVSelectedObject.ShowItemToolTips = true; ListViewItem listViewItem = mListView.Items.Add(lValue.Name); listViewItem.ToolTipText = “AAAAAAAAAAAAAAAAA”; 问题是工具提示仅在游标位于第一个列表视图列上时显示,而不显示其余列表。 我想知道是否还有让它显得“轻松”?

在处理控件时避免调用Invoke

我的工作线程中有以下代码(下面的ImageListView是从Control派生的): if (mImageListView != null && mImageListView.IsHandleCreated && !mImageListView.IsDisposed) { if (mImageListView.InvokeRequired) mImageListView.Invoke( new RefreshDelegateInternal(mImageListView.RefreshInternal)); else mImageListView.RefreshInternal(); } 但是,我有时会使用上面的Invoke方法获得ObjectDisposedException 。 看来控件可以在我检查IsDisposed和我调用Invoke 。 我怎么能避免这种情况?