问题标签 [tabpage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
633 浏览

c# - 将标签页聚焦于错误 (.NET)

我有一个 TabControl,每个 TabPage 中有几个 TabPages 和控件。我在实体框架上使用了一些数据绑定和验证。问题是,当标签上发生错误时,除可见的选项卡外,它不能看到。当托管在其中的某个控件上发生错误时,有没有办法使 TabPage 被选中?(我不知道 TabPage 的索引)

0 投票
3 回答
3701 浏览

c# - 多选项卡应用程序 (C#)

我正在创建一个多选项卡 .NET 应用程序,它允许用户在运行时动态添加和删除选项卡。添加新选项卡时,会向其中添加一个控件(作为子项),可以在其中编辑内容(例如,文本框)。用户可以使用工具栏/菜单栏在当前可见的文本框上执行任务。

为了更好地解释这一点,请查看下图以查看我想要完成的示例。这只是一个模型,所以它实际上并不能那样工作,但它显示了我想要完成的事情。本质上,就像一个多标签记事本。

在此处查看图片:http: //picasion.com/pic15/324b466729e42a74b9632c1473355d3b.gif

这在.NET中可能吗?我很确定它是,我只是在寻找一种可以实现它的方法。

0 投票
2 回答
2716 浏览

c# - c# form / tabcontrol 在最大化时重绘的问题

我有一个带有 tabcontrol 的应用程序/表单。当我最大化我的应用程序时,我看到一个重绘错误——标签页右侧区域的空白部分没有正确绘制并显示其他奇怪的东西。(只是背景,标签页的控件还可以)

我认为它一定是某个地方的简单设置,但我无法弄清楚它是什么。任何提示将不胜感激!:)

编辑:这里的问题截图:http: //i48.tinypic.com/dm318p.png 关注右上角:)

0 投票
2 回答
5536 浏览

c# - 标签页控制离开

我有一个标签控件和 3 个标签页。( C#)

如果我在选项卡 2 中,编辑文本框值,然后单击选项卡 3,我需要验证文本框中输入的内容。如果正确,我应该允许切换到选项卡 3,否则应该保留在选项卡 2 中,我该如何实现?

我目前正在处理 tabpage2 的“离开”事件,我验证那里的文本框值,如果发现无效,我设置为 tabcontrol.Selectedtab = tabpage2; 这会进行验证,但会切换到新标签!我怎么能限制导航。

我是 C# 的新手,所以我可能正在处理错误的事件!

以下是相关代码:

0 投票
3 回答
1376 浏览

c# - 在运行时添加的 C# TabPages 不会自动调整父窗体的大小

我有一个简单的表单,其中包含一个 TabControl,其中在运行时添加了 TabPages。我已经让所有这一切几乎按照我的意愿工作,但是当我将表单设置为自动调整大小时,它会忽略计算中的运行时 TabPages ......我怎样才能强制表单延迟自动调整大小直到 TabPages 有已添加,或者在添加新 TabPage 时强制表单重新计算?

编辑:作为记录,我正在通过在 640x480 启动我的应用程序(使用 MinimumSize 属性)并包括一个 750 宽的控件来对此进行测试。

0 投票
1 回答
4063 浏览

winforms - WinForms TabControl 验证:切换到验证失败的选项卡

我目前有一个TabControl包含一些TabPages 的表单。每个TabPage都有几个带有验证逻辑和适当ErrorProviders 的控件。在我的OK_Button_Clicked活动中,我打电话Form.ValidateChildren()以确定是否保存和关闭表单。现在,假设我在选项卡 1 中有一个未通过验证的控件,但当前可见的选项卡是选项卡 2。当用户按 OK 时,他不会得到关于表单未关闭原因的视觉指示。我希望能够自动切换到验证失败的选项卡,这样用户就会看到ErrorProvider' 的错误指示。

一种方法是订阅所有适当控件的Validatedvalidating事件,并知道每个控件在哪个选项卡中,每当验证失败时,可以构建验证失败的选项卡列表。由于ValidationFailed据我所知没有生成任何事件,这可能很麻烦(例如,为每个控件定义一个布尔值,在验证之前将其设置为 false 并将其Validated事件设置为 true)。即使我有这样的事件,我也将被迫侦听许多验证事件,每个控件可能验证失败,并在代码中维护未验证选项卡的列表。我应该在这里指出,直接订阅TabPage's 的验证事件是行不通的,因为即使其中包含的控件验证失败,它们也会作为验证通过。

TabPage另一种方法可以利用我的控件恰好是自定义控件这一事实。然后我可以让他们实现一个接口,例如:

例如:

然后,在调用之后,ValidateChildren我可以使用以下代码:

我更喜欢这种方法,但它不适合正在验证的控件不是自定义的情况。

我很乐意使用更好的方法。有任何想法吗?

编辑我正在使用Form.AutoValidate = EnableAllowFocusChange(正如 Chris Sells 在他的 WinForms 书中所推荐的那样),因此焦点确实可以从验证失败的控件(包括移动到其他选项卡)中改变。我还更新了自定义控件的示例代码,以强调其ErrorProvider内部驻留的事实。

0 投票
2 回答
334 浏览

c# - 如何修改已重新设置为 TabPage 的控件?

我有一个用户控件,其中包含一组控件,这些控件可用于在 UI 上呈现数据。我已经尝试实现一个“弹出”选项,它将从表单上的另一个容器(例如面板)重新设置控件的父级,创建一个新的选项卡页,然后将控件添加到选项卡页。

不幸的是,当控件被添加到 TabPage 时,它​​的大小似乎被锁定为它与最后一个父级一起呈现的方式。

我覆盖了 ParentChanged 事件以检测控件何时实际添加到 TabPage。如果我检查大小,尝试将大小设置为 TabPage 的 ClientRectangle,然后重新检查大小 - 它不会改变。设置 Dock 属性不会改变这种行为(尤其是 Fill)。

0 投票
7 回答
21028 浏览

c# - 以编程方式更改标签顺序

如何以编程方式重新排序 a 中的选项卡TabControl?我需要根据某些条件对选项卡进行排序。

如果可以通过设计器进行重新排序,我想我们也必须能够在运行时通过代码来完成。

0 投票
2 回答
3196 浏览

c# - .NET WindowsForm - TabPage GotFocus 事件

此页面表明 TabPage 有一个 GotFocus 事件,但在 Visual Studio 2008 中,我在 TabPage 上看不到该选项(它说它是从控件继承的,即 TabControl)。

每次用户单击不同的选项卡时,我将使用什么事件来编写一些运行的代码?我会使用 TabControl 的 GotFocus - 但在这种情况下,当用户切换到不同的选项卡时,GotFocus 是否会再次触发(并将选项卡名称作为变量传递给我?)

0 投票
4 回答
6930 浏览

c# - C# Winforms TabControl 元素读取为空,直到 TabPage 被选中

我有我用 C# 编写的 Winform 应用程序。在我的表单上,我有一个包含七页的 TabControl,每一页都充满了元素(主要是 TextBoxes 和 DropDownLists)。我使用 DataReader 提取一些信息,填充 DataTable,并使用元素的 DataBindings.Add 方法用当前值填充这些元素。

用户可以在这些元素中输入数据,按“保存”,然后我使用元素的文本字段设置更新查询的参数。例如:

我遇到的问题是,一旦我加载表单,所有元素显然都被认为是空的,直到我手动选择每个选项卡。因此,如果我在加载表单后立即按“保存”,我尚未选择的 TabPages 上的所有字段都会尝试使用空数据进行更新(不好)。当我选择每个 TabPage 时,这些元素现在将正确地发送它们的数据。目前,我已经制定了一个(非常)丑陋的解决方法,我在第一次填充数据时以编程方式选择每个 TabPage,但这是一个不可接受的长期解决方案。

我的问题是,如何在用户选择该 TabPage 之前让 TabPages 上的所有元素正确返回其数据?