标签: winforms

确定Windows窗体应用程序中的插入模式

我想检查C#Windows窗体应用程序中的Insert键的状态.这是最小的代码(不起作用;带有两个RadioButtons的表单):

using System;
using System.Windows.Forms;

using System.Windows.Input;
// Also added PresentationCore and WindowsBase refereneces

namespace InsertModeDemo1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            if (Keyboard.IsKeyToggled(Key.Insert))
                radioButtonInsert.Checked = true;
            else
                radioButtonOverstrike.Checked = true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# winforms

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

按钮点击winforms c#验证输入

我在文本框中验证userinput有一个小问题.

有一个带有各种文本框的用户控件,用户可以在其中输入数据以将新记录添加到数据库.当这些文本框中的任何一个没有正确的值(null或特定)时,我希望取消插入并让'errormaking'文本框获得焦点.

必须通过按钮检查.我可以调用按钮的Validating事件,还是有不同的(更好的)方法来实现这个?

此外,还有一个取消按钮取消整个插入.当尝试使用errorprovider时,"取消"按钮也变得不可用,因为该字段为空,因此无法发送.

一些代码供参考:

private void CheckInput(CancelEventArgs e, TextBox tb)
    {
        ErrorProvider error = new ErrorProvider();
        if (string.IsNullOrEmpty(tb.Text))
        {
            error.SetError(tb, "*");
            e.Cancel = true;
        }

        if (!string.IsNullOrEmpty(tb.Text)) 
        {
            error.SetError(tb, string.Empty);
            error.Clear();
            error.Dispose();
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# winforms

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

为什么我没有额外的MessageBoxes?

namespace övning_2._2_mitt_första_program
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult  = MessageBox.Show("Är det roligt att programera", "Övning", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if ( DialogResult == DialogResult.No)
            {
                MessageBox.Show("Du suger", "ÅSNA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            else if (DialogResult == DialogResult.Yes)
            {
                MessageBox.Show("Klart du gör", "Duktig", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# dialog winforms

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

为什么我的标签不显示所有文字?

public int dialog()
{
    Form prompt = new Form(); // creates form

    //dimensions
    prompt.Width = 300;
    prompt.Height = 125;

    prompt.Text = "Adding Rows"; // title

    Label amountLabel = new Label() { Left = 50, Top = 0, Text = "Enter a number from 1-50" }; // label for prompt
    amountLabel.Font = new Font("Microsoft Sans Serif", 9.75F);
    TextBox value = new TextBox() { Left = 50, Top = 25, Width = prompt.Width / 2 }; // text box for prompt
    Button …
Run Code Online (Sandbox Code Playgroud)

c# label winforms

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

仅在初始打开时设置我的组合框的默认索引

回答这个问题:VS2010/C#:如何在IDE中设置ComboBox的默认值?

据该用户,在Delphi的IDE,一个是能够,在属性窗口中,设置默认索引comboBox,当你打开它INITIALLY.但是,我无处可寻Default Index.当我最初的意思是,我的意思是不是以编程方式,同时当且仅当它最初打开时.

我已经尝试设置索引comboBox.SelectedIndex = 0,但事实证明我每次运行程序时都会设置它,所以这不仅在最初发生,而且每次我运行程序时都会发生.不是我想要的.

有谁知道我可以在属性或参数事件窗口中做什么,我怎么能这样做..?

当我最初打开我的程序时,它看起来像这样:

在此输入图像描述

我的属性选项卡:

在此输入图像描述

编辑:我可以创建一个全局整数计数器,它在每次运行时递增,并且当且仅当整数为0时才将默认值设置为0,这意味着它是第一次运行,但是如果它是我无需编程的话,那会更好.

c# combobox winforms visual-studio-2012

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

DataGridView将列中的所有值都写入列表

我想将第2列中的所有值写入列表:

List<string> list = new List<string>();
foreach (var item in dataGridView1.Rows)
{
    list.Add(item.Cells[1].Value.ToString);
}
Run Code Online (Sandbox Code Playgroud)

但是,这会返回错误.

c# datagridview list winforms

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

在另一个表单中显示Winform"表单",就像它是用户控件一样

编辑

这个问题的答案虽然是一个明显的解决方案,但对于这种情况来说还不够.我在原来的问题中加粗了这个原因,解释了为什么我希望它"完全回答" - 感谢LarsTech!

我原来的问题:

我有一个包含100个WinForms 表单屏幕的库,它是"Beyond My Control",我可以在我的应用程序中共享一些.但是,我的应用程序使用选项卡控件,我需要表单的内容显示在选项卡中而不是弹出窗口.

当我尝试新建其中一个表单并将其添加到选项卡的控件集合时,我收到以下错误消息:

顶级控件无法添加到控件中.

谁知道怎么解决这个问题?我知道还有其他方法涉及更好的架构,但截止日期,积压和富有的新客户等待着.[叹/]

private void button1_Click(object sender, EventArgs e)
{
  //panel1.Controls.Add(new Button());
  Form f = new Form();
  f.Controls.Add(new CheckBox());
  //f.ShowDialog();
  panel1.Controls.Add(f);
}
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net winforms

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

在C#中处理大文件时出现内存不足异常

我有一个C#winforms应用程序,其中我使用OpenFileDialog让用户选择要打开的文本文件.(允许多个选择)一旦他们选择了文本文件,我逐个打开文件,获取文本并存储内容使用List.Add()操作的List变量.

当用户选择异常大量的文本文件(如1264个文本文件,总大小高达750MB)时,我的问题就出现了,程序无法处理它.它读取了大约850个文件然后给我一个内存不足的例外.在任务管理器中,当发生这种情况时,我的应用程序的内存(私有工作集)大约为1.5GB.我使用x64机器与32GB内存.

我给出了通读文件的代码:

public static List<LoadData> LoadDataFromFile(string[] filenames)
{
    List<LoadData> MasterData = new List<LoadData>();
    lookingForJobs = new LookingForJobs(1,filenames.Length);
    lookingForJobs.Show();
    /*-------OUTER LOOP TO GO THROUGH ALL THE FILES-------*/
    for (int index = 0; index < filenames.Length; index++)
    {
        string path = filenames[index];
        /*----------INNER LOOP TO GO THROUGH THE CONTENTS OF EACH FILE------*/
        foreach (string line in File.ReadAllLines(path))
        {
            string[] columns = line.Split('\t');
            if (columns.Length == 9)
            {
                if (line.StartsWith("<"))    /*-------IGNORING THE FIRST 8 LINES OF EACH LOG FILE CONTAINING THE LOGGER …
Run Code Online (Sandbox Code Playgroud)

.net c# list visual-studio-2010 winforms

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

如何将图像文件保存在项目文件夹中?

在我的Windows应用程序中,我有PictureBox一个Button控件.我想从按钮的OnClick事件中加载用户的图像文件,并将该图像文件保存在我项目中的文件夹名称"proImg"中.然后我想在中显示该图像PictureBox.

我写了这段代码,但它不起作用:

OpenFileDialog opFile = new OpenFileDialog();
opFile.Title = "Select a Image";
opFile.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*";
if (opFile.ShowDialog() == DialogResult.OK)
{
    try
    {
        string iName = opFile.FileName;
        string filepath = "~/images/" + opFile.FileName;
        File.Copy(iName,Path.Combine("~\\ProImages\\", Path.GetFileName(iName)));
        picProduct.Image = new Bitmap(opFile.OpenFile());
    }
    catch (Exception exp)
    {
        MessageBox.Show("Unable to open file " + exp.Message);
    }
}
else
{
    opFile.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

它无法将图像保存在"proImg"文件夹中.

在此输入图像描述

c# openfiledialog picturebox winforms

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

Nuget组件缺失

我试图根据msdn的这篇文章实现Web浏览器. http://code.msdn.microsoft.com/vstudio/Professional-WebBrowser-dac9c5d0#content 但是我在第4.2点添加NuGet功能时遇到了麻烦.我通过Manage NuGet Packages成功安装了DockPanel Suite.此应用程序是Visual Studio 2012中的WinForms.在此安装之后,我应该在工具箱中看到DockPanel组件,但我找不到它.我尝试了一切,但仍然没有.

c# toolbox winforms nuget-package visual-studio-2012

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