标签: winforms

WinForm进入全屏模式

我有WinForm应用程序,我想进入全屏模式并删除所有栏和任务栏.我这样做了:

this.WindowState = FormWindowState.Maximized;
this.FormBorderStyle = FormBorderStyle.None;
this.TopMost = true;
Run Code Online (Sandbox Code Playgroud)

顶部栏实际上是隐藏的,但Windows TaskBar仍然可见.知道什么可能是麻烦吗?

c# winforms

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

SaveFileDialog事件FileOk

private void button2_Click(object sender, EventArgs e)
{        
    SaveFileDialog Sdialog = new SaveFileDialog();  
    Sdialog.ShowDialog();
    Sdialog.FileOk += Sdialog_FileOk;            
}

void Sdialog_FileOk(object sender, CancelEventArgs e)
{
    try
    {            
        StreamWriter FileProtocol = new StreamWriter(((SaveFileDialog)sender).FileName);
        FileProtocol.Write(textBox3.Text);
        FileProtocol.Close();
        MessageBox.Show("File is write ok");
    }
    catch (Exception)
    {
        MessageBox.Show("Unknown Error. File is not write");
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么事件FileOk不起作用?

.net c# winforms

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

FileSystemWatcher对硬盘有什么影响?

我以前使用过FileSystemWatcher.但是,我希望有人可以解释它实际上是如何在幕后工作的.

我计划在我正在制作的应用程序中使用它,它将监视大约5个驱动器和300,000个文件.

FileSystemWatcher是否实际上对驱动器进行"检查" - 例如,是否会导致驱动器磨损?它也会影响硬盘"睡眠"的能力

这是我不明白它是如何工作的地方 - 如果它像是在计时器等上扫描驱动器......或者它是否在它执行任何操作之前等待来自操作系统的某种类型的通知.

我只是不想实现一些会导致驱动器额外读取并使驱动器无法休眠的东西.

c# filesystemwatcher winforms

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

会计数据库架构

之前已经被问过很多次了……关于模式没有答案。

有人可以共享会计数据库架构吗?我已经阅读了许多有关重复输入记帐和记帐中的关系数据库的文章。但是,对于完整的解决方案的外观还没有完整的解释。

以下是我发现对我有用的文章:

1)http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html(货币变动原理,日记帐分录)
2)http://compasspointmedia.wordpress.com/2010/04/12/sqldatabase-会计相关结构/(有关交易记录,发票和付款的更深入的说明)

这是我仍然不清楚的问题之一:

我们以信贷方式向客户出售产品。借方AR帐户和贷方销售帐户。后来我们收到了客户的付款。它的金额高于应付金额。我该如何处理未使用的金额?

c# database accounting winforms database-schema

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

在绑定时更改ListBox的特定项背景颜色

我在c#.net winforms应用程序上工作.在我有列表框加载一些数据.所以我简单地从数据库中获取数据并通过相同的数据绑定列表框.对于绑定列表框我使用此代码.

 try
        {
            db v = new db();
            DataTable dt = new DataTable();
            dt = v.retDataTable("select distinct(tableName),tableID from tableMaster  order by tableName ");//retDataTable is function and it return data in datatable.
            listBox1.DataSource = dt;
            listBox1.DisplayMember = "tableName";
            listBox1.ValueMember = "tableID";
        }
        catch (Exception e1)
        {
        }
Run Code Online (Sandbox Code Playgroud)

现在我的问题:我 I have to check all data which i bind to listbox and change the background color of particular item as per condition. 该怎么办?

c# listbox background-color winforms

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

只能选择一个复选框

我想一次只选择一个复选框.我的程序从文本文件中读取并根据文本文件中有多少"答案"创建复选框.

有谁知道代码有什么问题?

public partial class Form1 : Form

    {
        string temp = "questions.txt";

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            StreamReader sr = new StreamReader(temp);
            string line = "";
            List<string> enLista = new List<string>();
            while ((line = sr.ReadLine()) != null)
            {
                string[] myarray = line.Split('\r');
                enLista.Add(myarray[0]);


            }
            sr.Close();


            for (int i = 0; i < enLista.Count; i++)
            {
                if (enLista[i].Contains("?"))
                {
                    Label lbl = new Label();
                    lbl.Text = enLista[i].ToString();
                    lbl.AutoSize = true;
                    flowLayoutPanel1.Controls.Add(lbl);
                }
                else …
Run Code Online (Sandbox Code Playgroud)

c# checkbox winforms

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

Combobox选择了索引更改事件未在代码中触发

我正在使用Windows窗体应用程序,我有一个名为的组合框cmbCountry.我将这个组合框绑定到一个包含国家名称的列表.以下是填充组合框的代码.

cmbCountry.DataSource = lstcountry;
Run Code Online (Sandbox Code Playgroud)

接下来我想将所选项目设置为" 美国 ".所以我添加了以下代码

cmbCountry.SelectedItem="United States of America";
Run Code Online (Sandbox Code Playgroud)

我想在这个组合框的选择更改事件上做一些代码.

private void cmbCountry_SelectionChangeCommitted(object sender, EventArgs e)
{
    \\some code
}
Run Code Online (Sandbox Code Playgroud)

假设在设置所选项目时调用此方法.但它没有被召集.但是当我从UI部分(设计部分)选择" 美利坚合众国 "这个事件被召唤.我想在设置所选项目时调用此事件.

c# winforms

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

使用大量文本更新多行文本框的最快方法

我有一个.NET 4.5 WinForm程序,它使用ODBC查询基于文本的数据库.然后我想在多行文本框中显示每个结果,我想以最快的方式完成.
在更新/填充文本框期间,GUI不必是可用的.但是,如果我能更新进度条让用户知道发生了什么事情,那就太好了.我相信后台工作者或新线程/任务是必要的,但我从来没有实现过.

我最初使用这个代码并且它很慢,因为它在继续下一个之前每行都绘制了结果.

OdbcDataReader dbReader = com.ExecuteReader();
while (dbReader.Read())
{
   txtDatabaseResults.AppendText(dbReader[0].ToString());
}
Run Code Online (Sandbox Code Playgroud)

这明显更快.

string resultString = "";
while (dbReader.Read())
{
   resultString += dbReader[0].ToString();
}
txtDatabaseResults.Text = resultString;
Run Code Online (Sandbox Code Playgroud)

但是在文本框生效之前有一段慷慨的等待时间,所以我想知道操作是否可以更快.现在我从文件中获取大约7,000行,我认为没有必要切换到AvalonEdit(如果我的思维方式错误,请纠正我,但我想保持简单并使用内置文本框).

.net c# textbox winforms

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

在C#Windows窗体中的同一ListView控件中重新排序/移动/拖放ListViewItems

在C#2008系统Windows窗体的LargeIcon视图中有一个ListView.现在我想在同一个ListView中移动一个ListView项目在另一个位置 - 让我们称它为"拖放"或"项目重新排序"或其他什么.VB 6能够做到这一点,并在任何listView中自动执行此操作.

C#似乎没有此功能,或者需要先编码.为了编码,我没有经验,我在互联网上的研究中找不到任何答案.我发现只有一个"覆盖程序"没有用.

我不需要任何其他ListView控件(如ObjectListView或其他),我不需要覆盖过程或制作新的ListView控件.我想在Microsoft提供的ListView控件中处理它.对此有任何想法.代码将受到高度赞赏我相信我不能自己做,除非它是一个非常简单的单行.

PS:如果需要移动项目,我需要移动项目的所有属性(文本,标签,图像键,背景颜色,前景色,名称,工具文本等).我不知道如何实现这一目标.我发现了一个提示:它存在删除一个项目(称为.Remove())并插入一个名为.Insert()的插入.但是有了这些信息,我仍然无法通过鼠标"移动"物品.我认为listView的所有DragEvents都在这里发挥作用,但我不知道如何使用它们以及如何将所选项目(listView1.SelectedItems)复制到正确的位置并且需要首先获得此位置.

c# listview drag-and-drop listviewitem winforms

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

需要一种更好的方法来迭代表单控件

在我用C#编写的WinForms应用程序中,一个Form上有一个Button,需要稍微改变第二个Form的外观(只需更改Button上的Text).

我已经设法做到这一点,但代码非常长,我相信必须有一个更简洁的方法来实现同样的事情.

这是我的窗体上的按钮frmConflicts的代码,以及它如何更改窗体frmAdmin上的按钮btnAddCase上的文本(工作,但似乎太长) -

private void btnNoConflicts_Click(object sender, EventArgs e)
    {
        try
        {
            foreach (Form f in Application.OpenForms)
            {
                if (f.Name == "frmAdmin")
                {
                    frmAdmin a = (frmAdmin)f;
                    a.conflictsClear = true;
                    foreach (Control ctrl in a.Controls)
                    {
                        if (ctrl.Name == "panAdmin")
                        {
                            foreach (Control ctrl2 in ctrl.Controls)
                            {
                                if (ctrl2.Name == "tabControlAdmin")
                                {
                                    TabControl tab = (TabControl)ctrl2;                                        
                                    foreach(TabPage page in tab.TabPages)
                                    {
                                        if (page.Name == "pageNewCase")
                                        {
                                            foreach (Control ctrl3 in page.Controls)
                                            {
                                                if (ctrl3.Name == "panCaseDetails")
                                                {
                                                    foreach (Control …
Run Code Online (Sandbox Code Playgroud)

c# winforms

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