标签: groupbox

WinForms - DataGridView从GroupBox继承样式

我有一个奇怪的问题,我不知道这是否是GroupBox/TabControl中.Net DataGridView的默认行为.

我从头开始创建了一个新的WinForm项目,并创建了一个GroupBox(更改了文本样式).像这样:

alt text http://www.freeimagehosting.net/uploads/65f5f2762d.png

然后,我创建了一个简单的DataGridView,根本没有字体样式,如下所示:

alt text http://www.freeimagehosting.net/uploads/09f55f951a.png

然后,在设计模式下,我在GroupBox中拖动了DataGridView,这种魔法恰好发生了:

alt text http://www.freeimagehosting.net/uploads/d0334132f0.png

我的问题是,我可以禁用此行为吗?因为如果我在GroupBox外部移动DataGridView样式然后将其拖入,丢失所有样式.

仅供记录,此表格根本没有任何代码.

提前致谢.

c# coding-style datagridview groupbox

5
推荐指数
2
解决办法
4013
查看次数

透明组盒

我继承了Delphi本机控件的TGroupBox,并重写了它的Paint方法来绘制圆角矩形。

   procedure TclTransparentGroupBox.CreateParams(var params : TCreateParams);
   begin
     inherited;
     Params.ExStyle := params.ExStyle or WS_EX_TRANSPARENT;
   end;
Run Code Online (Sandbox Code Playgroud)

覆盖创建参数后,Paint方法如下。

   procedure TclTransparentGroupBox.Paint;
   begin
     // Draw the rounded rect to show the group box bounds
     Canvas.Pen.Color := clWindowFrame;
     Canvas.RoundRect(5, 15, ClientRect.Right - 5, ClientRect.Bottom - 5, 10, 10);
     if Caption <> EmptyStr then
     begin
       Canvas.Brush.Style := bsClear;
       Canvas.TextOut(10, 0, Caption);
     end;
   end;
Run Code Online (Sandbox Code Playgroud)

我面临的主要问题是,我在透明组框顶部没有几个标签。当我打开表单时,标签看起来很好,但是当文本更改时,标签的某些边界矩形将可见。这在透明框的顶部看起来很奇怪。

即使当我调整表单大小时,组框本身也会消失,当我将焦点更改到另一个应用程序并恢复我的应用程序时,组框会自动绘制。

我在绘画方面缺少任何东西吗?我需要照顾的任何Windows消息???

在此先感谢拉胡尔

delphi groupbox transparent-control delphi-6

5
推荐指数
1
解决办法
2927
查看次数

WPF Groupbox控件标题,按钮和文本对齐

我想使用WPF groupbox控件实现这样的接口

在此输入图像描述

有没有办法用WPF组框控件实现这样的界面?

wpf controls groupbox alignment

5
推荐指数
1
解决办法
5604
查看次数

GroupBox自动调整大小

拿一个GroupBox,放在Label里面说然后设置AutoSizeMode = GrowAndShrinkAutoSize = true.

会出现两个问题:

  • Label底部和底部之间存在巨大差距GroupBox(几乎足以适应另一个Labellol);
  • AutoSize不尊重GroupBox.Text财产.

问题是如何GroupBox.AutoSize正常工作?正确的意思是:最小宽度应该足够适合GroupBox.Text,不明原因下面应该没有间隙(它不是Margin,也不Padding是看起来很丑).


我已经尝试测量字符串长度OnPaint并在MinimumSize那里设置.它有效,但我对此有疑问,好像我想MinimumSize稍后实际设置- 它会在重绘后丢失.


更新,这里是截图:

在此输入图像描述

c# groupbox autosize winforms

5
推荐指数
2
解决办法
5839
查看次数

如何在winforms中更改禁用复选框的前景色

我在具有表单的Windows应用程序中工作.此表单包含一个具有一些复选框的组框.我已将此组框设置为禁用.现在我的问题是复选框文本的前色.它变成浅灰色,如下图所示.

在此输入图像描述

如何更改复选框文本的前景颜色,使其看起来不像禁用(浅灰色).

c# checkbox groupbox winforms

5
推荐指数
2
解决办法
5846
查看次数

自定义GroupBox,带有自定义TextColor,BorderColor和Transparent BackColor

我正在使用WinForms.在我的形式我有一个GroupBox.这是一个自定义组框.我想要一个透明的背景groupbox.我遇到问题创建透明背景groupbox问题这个代码是我在将组框设置backcolor为透明时继续出错.

错误:控件不支持透明背景颜色.

g.Clear(BackColor = Color.Transparent); (这是给我问题的那条线)

    private void DrawGroupBox(GroupBox box, Graphics g, Color textColor, Color borderColor)
    {
        if (box != null)
        {
            Brush textBrush = new SolidBrush(textColor);
            Brush borderBrush = new SolidBrush(borderColor);
            Pen borderPen = new Pen(borderBrush);
            SizeF strSize = g.MeasureString(box.Text, box.Font);
            Rectangle rect = new Rectangle(box.ClientRectangle.X,
                                           box.ClientRectangle.Y + (int)(strSize.Height / 2),
                                           box.ClientRectangle.Width - 1,
                                           box.ClientRectangle.Height - (int)(strSize.Height / 2) - 1);

            // Clear text and border
            g.Clear(BackColor …
Run Code Online (Sandbox Code Playgroud)

.net c# transparency groupbox winforms

5
推荐指数
1
解决办法
6649
查看次数

您可以隐藏QGroupBox框架,但保留其可见的内容吗?

我有一个QGroupBox。根据上下文的不同,其标题可能是多余的(显示在GUI的其他位置),因此我需要使好像QGroupBox不在这里。...但是我必须保留其内容可见(所以我不想打电话QGroupBox::hide())!

我需要在运行时动态地执行此操作,并希望避免创建/销毁QGroupBox+使其内容重新父代化。

到目前为止我尝试过的是:

QGroupBox 可见:

在此处输入图片说明

  • QGroupBox::setTitle("") 删除文本。
  • QGroupBox::setFlat(true) 使框架成为一行。

我最终得出以下结论:

在此处输入图片说明

还不错...但是一行仍然保留....有没有办法完全隐藏QGroupBox框架但保持其内容可见?

qt groupbox

5
推荐指数
2
解决办法
5560
查看次数

为什么 GroupBox 没有 MouseMove 事件?

WinForms GroupBox 控件不支持 MouseMove(或者至少不支持),我不明白为什么。

由于它是 Control 的后代,因此它确实具有 MouseMove 事件,但 GroupBox 使用 显式重新引入它Browsable(false),因此它不会显示在属性网格中。您可以在运行时挂钩 MouseMove 事件,有时它会起作用 - 只要 FlatStyle 保留为 Standard。如果 GroupBox 的 FlatStyle 设置为 System,则根本不会触发 MouseMove 事件。

Reflector没有给我任何线索。GroupBox 构造函数似乎没有设置任何奇怪的控件样式,并且 GroupBox 没有做任何愚蠢的事情,例如覆盖 MouseMove 和无法调用基类。

这似乎也是 WinForms 特有的限制,因为 Delphi 组框支持 OnMouseMove 就很好。 更正:与 Delphi 的比较无效。Delphi 组框实际上并不是标准的 BM_GROUPBOX 控件;它们只是被绘制成看起来像组框,而实际上并没有继承像这样的奇怪的组框行为。因此,这很可能是 Windows 组框控件的限制,尽管我还没有在任何地方看到它的记录。

为什么 WinForms GroupBox 不支持 MouseMove?

groupbox mouseevent winforms

4
推荐指数
1
解决办法
5013
查看次数

如何将 groupBox 的角更改为尖角而不是圆形 C# .NET WPF

我刚刚开始使用 GroupBoxes,我只是想知道为什么我不能让我的角变得尖锐,就好像它是一个矩形一样。我在网上看到过一些,它们的角不是圆的。这是为什么?

 <GroupBox x:Name="howTOGroupBox" BorderBrush="White" Foreground="White" Header="How To" HorizontalAlignment="Left" Margin="88,86,0,0" VerticalAlignment="Top" Height="79" Width="221" BorderThickness="1"/>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

.net c# wpf groupbox

4
推荐指数
1
解决办法
5378
查看次数

XAML:如何将 GroupBox Header 的一部分设为粗体?

我需要将 GroupBox Header 的第一部分加粗,另一部分不加粗。这是我试图实现的目标:

学生(最多:32)

        <GroupBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4" Margin="40, 80, 40, 80">
        <GroupBox.Header>
            <Span FontWeight="Bold">Students</Span>
            (Max: 32)
        </GroupBox.Header>
        <StackPanel>
        ...
Run Code Online (Sandbox Code Playgroud)

这给了我错误:不止一次设置了属性“Header”。

我知道它适用于 TextBlocks,但我不能让它发生在 GroupBox Headers 上:

        <TextBlock>
            <Span FontWeight="Bold">Students</Span>
            <Span>(Max: 32)</Span>
        </TextBlock>
Run Code Online (Sandbox Code Playgroud)

谢谢。

wpf xaml styles header groupbox

4
推荐指数
1
解决办法
2986
查看次数