无法将焦点设置在 Windows 窗体文本框上

2024-03-02

当选项卡页首次出现时,我似乎无法在文本框中获得输入焦点(我正在使用 Windows 窗体、VB.NET 3.5)。

我在选项卡页的面板上有一个文本框,我希望当选项卡页出现时焦点位于文本框上。我希望用户能够立即开始在聚焦的文本框中键入内容,而无需单击文本框。我按照我想要的顺序设置了制表位,文本框是第一个制表位。选项卡停止工作,除非当选项卡页出现时焦点不在文本框上,即选项卡顺序中的第一个文本框。

在选项卡页的 Enter 事件处理程序中,我调用文本框的 Focus 方法,但它返回 False 并且不执行任何操作,也没有错误消息。我知道我可以访问文本框,因为 在代码中的同一点我可以设置文本框的文本。

如果重要的话,标签页的布局有点复杂:

frmFoo/TabControl1/TabPageX/Panel1/Panel2/TextBox1

我想将焦点设置在 TextBox1 上。

  1. 将焦点集中在所需文本框上的最佳方法是什么?
  2. 如果设置焦点是最好的方法,为什么 textbox.Focus() 方法会失败?

我假设您正在尝试在表单加载事件处理程序中设置焦点?如果是这样,您需要做一个Me.Show()在设置焦点之前实际创建屏幕控件。大致如下:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Me.Show()
    Application.DoEvents()
    TextBox1.Focus()
End Sub

如果你不这样做Me.Show(),直到加载事件完成后才会显示表单。

对于选项卡控件,处理_SelectedIndexChanged event:

Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As System.EventArgs) _
  Handles TabControl1.SelectedIndexChanged

    If TabControl1.SelectedTab.Name = "TabPage1" Then
        TextBox2.Focus()
    End If
    If TabControl1.SelectedTab.Name = "TabPage2" Then
        TextBox4.Focus()
    End If

如果选择的第一个字段是选项卡控件上的文本框,您仍然需要在加载事件中设置初始焦点,如上所示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法将焦点设置在 Windows 窗体文本框上 的相关文章

  • 检测非聚焦窗口上的鼠标滚轮?

    我的目标是制作一个浮动工具栏 作为其自己的 C 应用程序 当用户在我上方使用滚轮时 我想更改可见的按钮 听起来很简单 应该只是这句话的问题 MouseWheel new MouseEventHandler Form1 MouseWheel
  • MonoState、Singleton 或派生形式:CRUD 应用程序的最佳方法?

    我有一个相当大的 CRUD WinForm 应用程序 其中有许多对象 人员 注册 计划 案例注释等 该应用程序由 30 多种表单组成 UI 逻辑上被分解 会员 注册 计划 案例说明等 我正在尝试弄清楚如何创建我的人物对象搜索后搜索表格并将对
  • 将 Windows 窗体应用程序转换为 Asp.net

    我问的是 您之前使用的将 C Windows 窗体应用程序转换为 ASP NET 的最佳工具是什么 我已经关于这个主题 发现了很多工具 但我希望有人根据他的使用情况推荐最好的工具 我真的不建议使用工具来进行转换 Web 应用程序和 WinF
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编
  • 插入具有只读主键列的表

    我正在使用一个使用 sql server 数据库的应用程序 我试图在表中插入一行 如下所示 该表有一个主键 prodNum 这是自动生成的密钥 当我尝试向表中插入一行时 如下所示 在行中intResult oSglProdTableAdap
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • Winforms 动画背景

    我想要我的winform的背景是动画的 就像背景中的动画gif或作为背景播放的视频文件或flash电影 如何做到 只需获取一个可以执行您想要的操作的控件 例如 ImageBox 并将 Dock Property 设置为填充即可完成页面 您放
  • 当文本框中有字符串时如何启用按钮?

    我在 form2 中有一个文本框和一个按钮 当单击 form1 中的某个项目时 将出现 form2 我想在文本框为空时保持 form2 中的按钮处于禁用状态 但是当用户开始输入时 我想启用该按钮 我尝试在构造函数中像这样在initialis
  • 如何在VB函数中添加可选参数/默认值参数?

    如何在 Visual Basic 中创建一个包含可选参数的方法 Use the Optional关键字并提供默认值 可选参数必须是最后定义的参数 以避免创建不明确的函数签名 Sub MyMethod ByVal Param1 As Stri
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我
  • 使用 JSON.net 反序列化

    我对 json JSON net 等都很陌生 在这里阅读类似的问题后 我无法让我的代码工作 我的错误到底是什么 我监督了什么 出于测试目的是否可以跳过 链接 和 元 类 或者我是否必须定义每个属性 我得到以下 REST 输出 codes h
  • 如何将 .NET 控制台应用程序转换为 Winforms 或 WPF 应用程序

    我经常从一个简单的控制台应用程序开始尝试一个想法 然后创建一个新的基于 GUI 的项目并将代码复制进去 有更好的方法吗 我可以轻松转换现有的控制台应用程序吗 只需添加一个新的Winform 将以下代码添加到您的Main Applicatio
  • 数据读取过程中遇到致命错误

    我正在进行定期更新表扫描 Using connect1 As New MySqlConnection ConnectLocalhost serverString connect1 Open Dim cmd New MySqlCommand
  • 在运行时向父控件添加控件

    我需要将运行时添加的控件添加到父控件 面板 我可以设置对象的属性 PictureEdit 但如何显示它 将其添加到父控件 谢谢 protected override void OnPaint PaintEventArgs pe Pictur
  • ODP.Net - OracleDataReader.读取速度非常慢

    我在 ODP Net 中的 OracleDataReader 方面遇到很多麻烦 基本上 我有一个参数化查询 需要 1 5 秒的时间来运行 返回大约 450 条记录 然后需要 60 90 秒的时间来循环 甚至没有代码在循环中运行 实际上是迭代
  • 如何避免选择项目时 winforms 树视图图标发生变化

    我正在一个小型 C Winforms 应用程序中尝试树视图 我已经以编程方式将 ImageList 分配给树视图 并且所有节点都很好地显示了它们的图标 but当我单击一个节点时 它的图标会发生变化 变为 ImageList 中的第一个图像
  • 如何使复选框不可选择?

    我想知道你是怎么做的CheckBox在c 中无法选择 我认为这会是类似 SetSelectable false 之类的东西 但我似乎看不到该方法 I found CanSelect但这似乎是只读属性 您可以设置自动检查 http msdn
  • 使用 JSON 序列化 PictureBox

    我正在开发一个 C Windows 窗体应用程序项目 我需要使用 JSON 序列化 PictureBox 并将其保存到文件中 由于某种原因 JSON 在尝试序列化 PictureBox 时出现错误 Newtonsoft Json JsonS
  • 如何使用 DataTable.Load(DataReader) 重新加载 DataGridView 而不出现重复记录

    任何人都可以帮助我如何避免重复输出DataGridView 这是图像变更前 https i stack imgur com CyKwY png和图像添加 编辑或删除后 https i stack imgur com Bvu0u png 这是

随机推荐

  • 使用 State 和 IO 的堆叠 monad 时,在流程中停止理解

    在这个 Scala 示例中 当结果为以下时我需要停止StopNow 我需要在打电话后执行此操作decisionStep 我怎样才能做到这一点 case class BusinessState trait BusinessResult cas
  • 比较文件名

    我想比较两个不同文件夹中的文件 我只想比较这两个不同文件夹中具有相同名称的文件 我想做的是比较一个软件的两个不同版本并找出有多少文件被更改 这将帮助您获取两个路径的文件 import java io File import java uti
  • 为什么 python webassets pyscss 不能在调试模式下从 scss 文件重新生成 css?

    我在 python webassets 库中使用 pyscss 编译器 并将 webassets 调试配置全部设置为 true 但是 当我对 scss 文件进行更改并重新加载包含生成的 css 文件的页面时 我发现 css 文件尚未重新生成
  • int main() { } (不带“void”)在 ISO C 中有效且可移植吗?

    C 标准指定了两种形式的定义main为一个 托管实施 int main void and int main int argc char argv 它可以以与上述 等效 的方式定义 对于 例如 您可以更改参数名称 替换int通过 typede
  • 查询客户交易数据

    我正在构建一个类似于个人理财的应用程序 为此 我需要获取有关该客户交易的信息 我设法运行了获取基本个人数据 https developer paypal com docs classic permissions service integr
  • 带中缀表示法的点自由样式

    您好 有没有办法在使用中缀表示法时编写点自由样式 f Int gt Int gt Int gt Int f a b a b 为什么你不能做这样的事情 f Int gt Int gt Int gt Int f a b a b or f a b
  • 使用 control.begininvoke 后 UI 仍然没有响应

    我制作了一个 C winforms 应用程序 现在我有一个带有很多按钮的表单 这些按钮调用大量的数字运算函数 其输出在文本框中更新 我调用 textbox begininvoke 方法 将委托传递给更新文本框中文本的函数 但是当文本很大时
  • 无法在单用户模式下启动sql server

    我正在尝试恢复我的本地 sql server sa 密码 我读到应该将其置于单用户模式 我就这样做了 我添加了 m 到启动参数 我没有运行 sql 代理 我重新启动了 Sql Server 当我尝试时 sqlmd S sqlexpress
  • Ruby on Rails 中的模型关系

    我正在 Rails 3 中开发一个新应用程序 但我不确定如何建立模型之间的关系 基本上我有一个model User and a model Project 用户可以创建项目 成为项目所有者 但除项目所有者之外的任何其他用户也可以加入该项目
  • 如何检查数组中的非零值(元素)

    我想知道如何编写一个函数来返回是否至少有三个值不等于 0 我搜索过类似的问题 但找不到任何有效的解决方案 为了解释我的问题 这里有一个例子 我有一个包含这些元素的数组 1 0 2 0 4 0 0 3 0 0 我想检查是否至少有 3 个元素不
  • file.read()、file.readline() 和迭代文件对象之间的区别[重复]

    这个问题在这里已经有答案了 我是计算机科学的新手 正在尝试在 python 中创建一个函数来打开我的计算机上的文件 我知道这个函数f readline 将当前行作为字符串抓取 但是这些函数的作用是什么f read and for line
  • Python - 将日期的字符串表示形式转换为 ISO 8601

    在Python中 如何转换这样的字符串 2010 年 12 月 16 日星期四 12 14 05 0000 为 ISO 8601 格式 同时保留时区 请注意 原始日期是字符串 输出也应该是字符串 而不是datetime或类似的东西 不过 我
  • 将 abel 包裹在复合材料中

    I have ScrolledComposite只允许垂直滚动 heighthint 400 在这个 ScrolledComposite 中 我还有另一个CompositeA 滚动高度可能超过 400 来存储所有其他小部件 我有一个很长的标
  • PIL ValueError:图像数据不足?

    当我尝试从 URL 获取图像并将其响应中的字符串转换为Image在 App Engine 内 from google appengine api import urlfetch def fetch img url try result ur
  • ConcurrentQueue 保存对象的引用或值? “内存不足”异常

    排队到 ConcurrentQueue 的对象是被复制到队列还是仅复制到它们的引用 我不明白任何场景 解释 我这样定义了一个 ConcurrentQueue BufferElement is a class I created privat
  • 可观察队列?

    是否有人编写了实现 INotifyCollectionChanged 的 Net 通用队列版本 或者是否已经在 Net 框架深处隐藏了某个版本 快速搜索没有显示任何结果 但接口很简单 扩展 Queue 类并添加对该接口的支持几乎是微不足道的
  • Dropbox SDK 401 错误

    我正在使用 Dropbox SDK 并且已将其设置为应用程序只能访问 Apps MyAPP 文件夹 我正在测试它并在线删除了该文件夹 现在 当我在应用程序中而不是要求重新链接 Dropbox 时 它会给我一个 401 错误 我不知道为什么它
  • Docker 在构建期间不会创建目录

    第一次尝试使用 Docker 在我的 Dockerfile 中执行以下步骤来创建目录 但是当我运行容器时 该目录不存在 FROM ubuntu MAINTAINER AfterWorkGuinness RUN apt get update
  • actix-web 中“扩展”的作用是什么?

    我想弄清楚如何Extension https docs rs actix web 3 3 2 actix web dev struct Extensions htmls 创建于Actix 网络 https crates io crates
  • 无法将焦点设置在 Windows 窗体文本框上

    当选项卡页首次出现时 我似乎无法在文本框中获得输入焦点 我正在使用 Windows 窗体 VB NET 3 5 我在选项卡页的面板上有一个文本框 我希望当选项卡页出现时焦点位于文本框上 我希望用户能够立即开始在聚焦的文本框中键入内容 而无需