小编Rez*_*aei的帖子

按索引获取列表框项的值

这一定很容易,但我被卡住了.我有一个带有X项的listBox.每个项目都有一个文本描述(出现在listBox中)及其值(数字).我希望能够使用项目的索引号获取项目的value属性.

.net c# combobox listbox winforms

13
推荐指数
4
解决办法
13万
查看次数

将公式单元格应用于DataGridview

我想在a中添加公式单元格DataGridView.有没有习惯DataGridView这样做?

例:

grid[4, column].Text = string.Format("=MAX({0}6:{0}{1})", columnAsString, grid.RowCount);
Run Code Online (Sandbox Code Playgroud)

c# datagridview formula winforms

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

如何在winforms中制作多语言应用程序

我有一个应用程序,我需要在该应用程序中使用两种语言(例如,英语和阿拉伯语),但我不知道我该怎么做.有人可以帮我这个吗?我需要在C#Windows窗体中使用一些示例.

.net c# localization winforms

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

是否可以在部分类中为属性添加属性?

我不认为这是可能的,但由于我没有明确的MSDN清晰度,我觉得最好问一下.假设我们有一个类如下.

public partial class Hazaa
{
  public int Shazoo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后,我想将Shazoo归为SuperCool, 我希望在另一个文件中这样做.由于我使用的是分部分类,我可以按如下方式添加新属性.

public partial class Hazaa
{
  [SuperCool]
  public int Wheee { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是我可以通过在后者中编写代码来归因第一个样本中声明的属性吗?我怀疑这是可能的,但我很乐意经过纠正.如果是这样,语法是什么?

.net c# attributes partial-classes

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

将子控件的click事件传递给父控件

我有一个Windows窗体,有一个窗格,其中包含从Windows窗体派生的另一个类.它包含在窗格中作为控件.它本身包含两个按钮.

我希望子控件的事件一直传递到父窗口.例如,窗格中的子窗口有一个Cancel按钮,应该关闭它.我想要父控件,即关闭主窗口,但是如何拦截子控件的按钮单击事件?

我可以修改子控件,但只有在没有其他方法以正确的方式实现这一点时,我宁愿避免它.

.net c# user-controls controls winforms

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

将多个属性组合到单个属性中

在控件上我使用多个属性属性:

[Browsable(false)]
[Bindable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Obsolete("", true)]
public new Boolean AllowDrop;
Run Code Online (Sandbox Code Playgroud)

我也在许多其他控件属性上使用这些属性.

我想知道是否有办法减少每次写入的代码量.

如果我可以组合这样的多个属性会很好:

[Hidden(true)]
public new Boolean AllowDrop;
Run Code Online (Sandbox Code Playgroud)

Hidden财产将包括上述所有属性.所以只有一行代码.

也许还有一种方法可以在宏或其他东西中组合属性?

我知道还有其他隐藏属性的方法,但我选择了使用属性的方式.

谢谢

.net c# windows-forms-designer visual-studio winforms

12
推荐指数
1
解决办法
3706
查看次数

WinForms TreeView检查/取消选中层次结构

以下代码旨在根据需要以递归方式检查或取消检查父节点或子节点.

在此输入图像描述

例如,在此位置,如果我们取消选中其中任何一个节点,则必须取消选中A,G,LT节点.

在此输入图像描述

以下代码的问题是,每当我双击任何节点时,算法都无法实现其目的.

树搜索算法从这里开始:

    // stack is used to traverse the tree iteratively.
    Stack<TreeNode> stack = new Stack<TreeNode>();
    private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
    {
        TreeNode selectedNode = e.Node;
        bool checkedStatus = e.Node.Checked;

        // suppress repeated even firing
        treeView1.AfterCheck -= treeView1_AfterCheck;

        // traverse children
        stack.Push(selectedNode);

        while(stack.Count > 0)
        {
            TreeNode node = stack.Pop();

            node.Checked = checkedStatus;                

            System.Console.Write(node.Text + ", ");

            if (node.Nodes.Count > 0)
            {
                ICollection tnc = node.Nodes;

                foreach (TreeNode n …
Run Code Online (Sandbox Code Playgroud)

.net c# treeview .net-2.0 winforms

12
推荐指数
1
解决办法
463
查看次数

检测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万
查看次数

Windows窗体:通过部分透明的always-on-top窗口传递点击次数

我正在设计一个始终在屏幕上,大约20%不透明的窗口.它被设计成一种状态窗口,因此它始终位于顶部,但我希望人们能够通过窗口点击下面的任何其他应用程序.我现在输入的是这个SO帖子顶部的不透明窗口:

例

看到灰色吧?这会阻止我在此刻输入标签框.

.net c# transparent winforms

11
推荐指数
1
解决办法
1702
查看次数

如何包含ValueTuple的结构可以满足非托管约束,但ValueTuple本身不能?

考虑以下类型:

  • (int, int) →管理.
  • struct MyStruct { public (int,int) Value; } →不受管理!

问题:MyStruct具有托管成员的非泛型结构(int,int)已被评估为托管类型.

预期行为:包含托管成员的结构应被视为托管,与被视为托管的方式相同struct MyStruct { int? Value; }.

似乎这两种类型都与文档[1][2]相反.

示例1 - 非托管约束

class Program
{
    static void DoSomething<T>() where T : unmanaged { }
    struct MyStruct {  public (int, int) Value; }
    static void Main(string[] args)
    {
        DoSomething<MyStruct>();    // ? OK
        DoSomething<(int, int)>();  // ? Shows compile-time error
    }
}
Run Code Online (Sandbox Code Playgroud)

错误CS8377类型"(INT,INT)"必须是一个非空值类型,与任何嵌套级别的所有字段一起,以便在通用类型或方法"Program.DoSomething使用它作为参数"T" ()"

示例2 - 指针或sizeof

使用上面的结构,指针或sizeof运算符的行为是相同的: …

.net c# generics unmanaged c#-7.3

11
推荐指数
1
解决办法
590
查看次数