小编use*_*327的帖子

检测Tab键按下TextBox

我正试图检测一下Tab按键TextBox.我知道,Tab键不会触发KeyDown,KeyUpKeyPress事件.我发现:在互联网上检测BlackWasp的Windows窗体中的Tab键.他们建议覆盖我所做的ProcessCmdKey,但它也不会被触发.有没有可靠的方法来检测Tab键按键?

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{

    bool baseResult = base.ProcessCmdKey(ref msg, keyData);

    if (keyData == Keys.Tab && textBox_AllUserInput.Focused)
    {
        MessageBox.Show("Tab key pressed.");
        return true;
    }
    if (keyData == (Keys.Tab | Keys.Shift) && textBox_AllUserInput.Focused)
    {
        MessageBox.Show("Shift-Tab key pressed.");
        return true;
    }

    return baseResult;
}
Run Code Online (Sandbox Code Playgroud)

根据Cody Gray的建议,我改变了代码如下:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData == Keys.Tab && textBox_AllUserInput.Focused)
        {
            MessageBox.Show("Tab key pressed.");        }
        if …
Run Code Online (Sandbox Code Playgroud)

.net c# textbox winforms

11
推荐指数
2
解决办法
2万
查看次数

如何在WinForms的组合框中使选定项居中对齐?

我有一个带有ComboBox的表单。我找到了该帖子:http : //blog.michaelgillson.org/2010/05/18/left-right-center-where-do-you-align/帮助我将DropDown列表中的所有项目居中对齐。问题是所选项目(comboBox.Text属性中显示的项目)保持左对齐。

如何将所选项目居中对齐?
代码是:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ComboBoxTextProperty
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();

            List<string> source = new List<string>() { "15", "63", "238", "1284", "13561" };
            comboBox1.DataSource = source;
            comboBox1.DrawMode = DrawMode.OwnerDrawFixed;
            comboBox1.DropDownStyle = ComboBoxStyle.DropDown;
            comboBox1.SelectedIndex = 0;
            comboBox1.DrawItem += new DrawItemEventHandler(ComboBox_DrawItem);
    }

    /// <summary>
    /// Allow the text in the ComboBox to be center aligned.
    /// …
Run Code Online (Sandbox Code Playgroud)

.net c# combobox alignment winforms

7
推荐指数
1
解决办法
291
查看次数

如何检查数组是否包含任何项目或完全为空?

如果我定义一个整数数组:

int[] a = new int[13];
Run Code Online (Sandbox Code Playgroud)

并且我没有向其中插入任何项目,我如何知道数组 a 是否包含任何项目或完全为空?我是否必须迭代所有 a.Length 索引?在列表中

List<int> b = new List<int>();
Run Code Online (Sandbox Code Playgroud)

如果我检查:

if(b.Count == 0)
{
    // The list does not contain any items.
}
Run Code Online (Sandbox Code Playgroud)

有没有等效的方法来检查数组?我在互联网上发现检查数组是否为空或空。就我而言,我确信该数组不为空。我只是想知道它是否包含任何项目。我不关心数组中的哪个位置,也不关心具体是哪个项目。预先非常感谢您。

c# arrays

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

如何为日期时间字符串找到正确的自定义格式

我从两种不同格式的文件中读取日期时间字符串:

  1. 19/02/2019 08:24:59
  2. 2/17/2019 12:25:46 PM

对于第一种格式,我写的自定义格式字符串是:

string firstDate = "19/02/2019 08:24:59";
string customFormatForFirstDateTimeString = "dd/mm/yyyy hh:mm:ss";
Run Code Online (Sandbox Code Playgroud)

我用它如下:

string firstResultingDateAndTime;

bool parsingSuccessful = DateTime.TryParseExact(
  firstDate, 
  customFormatForFirstDateTimeString, 
  System.Globalization.CultureInfo.InvariantCulture, 
  System.Globalization.DateTimeStyles.None, 
  out firstResultingDateAndTime);
Run Code Online (Sandbox Code Playgroud)

问题是parsingSuccessful结果false.对于第二个日期时间字符串,代码如下:

string secondDate = "2/17/2019 12:25:46 PM";
string customFormatForSecondDateTimeString = "m/dd/yyy hh:mm:ss PM";
string secondResultingDateAndTime;

parsingSuccessful = DateTime.TryParseExact(
  secondDate, 
  customFormatForSecondDateTimeString, 
  System.Globalization.CultureInfo.InvariantCulture, 
  System.Globalization.DateTimeStyles.None, 
  out secondResultingDateAndTime);
Run Code Online (Sandbox Code Playgroud)

我也收到了

parsingSuccessful == false;
Run Code Online (Sandbox Code Playgroud)

我估计自定义格式字符串不适合日期时间字符串,但我无法弄清楚原因.请帮忙.先感谢您.

c# datetime winforms

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

以编程方式获取所有内置类型的列表

我从内置类型表(C# 参考)中获取了所有内置类型。有没有办法以编程方式获取此列表?我不知道如何使用反射,所以我不知道如何开始。我还没有代码。

.net c# types built-in

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

是否有同时包含 List&lt;T&gt; 和 HashSet&lt;T&gt; 的类型?

我有两种显示方法:一种是项目列表,另一种是项目的 HashSet。方法是一样的。有没有办法用参数类型编写方法,这样我就可以使用相同的方法,而不管传递给方法的参数是什么类型:List<T>HashSet<T>

方法是:

    public static void DisplayList<T>(List<T> list)
    {
        int i = 0;
        foreach (T item in list)
        {
            Console.Write(item.ToString());
            if (i < list.Count - 1)
            {
                Console.Write(", ");
            }
            i++;
        }
        Console.WriteLine();
    }

    public static void DisplayHashSet<T>(HashSet<T> set)
    {
        int i = 0;
        foreach (T item in set)
        {
            Console.Write(item.ToString());
            if (i < set.Count - 1)
            {
                Console.Write(", ");
            }
            i++;
        }
        Console.WriteLine();
    }
Run Code Online (Sandbox Code Playgroud)

.net c# list hashset

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

找不到OrderBy扩展方法

我已经在一个项目的类中创建了一个函数,并将其移至另一个项目的类中。在第一个项目中,所有内容都可以编译,但是在第二个项目中,我得到以下错误消息:...不包含“ OrderBy”的定义,也没有扩展方法“ OrderBy”接受类型为第一个参数的

List的扩展OrderBy在第二个项目中不存在,但在第一个项目中确实存在。两个项目中都设置了相同的.NET框架。我不确定我还应该寻找什么。

你能建议做什么吗?

谢谢,Paul Feher

c# linq list

-2
推荐指数
1
解决办法
1165
查看次数

标签 统计

c# ×7

.net ×4

winforms ×3

list ×2

alignment ×1

arrays ×1

built-in ×1

combobox ×1

datetime ×1

hashset ×1

linq ×1

textbox ×1

types ×1