小编Mat*_*ton的帖子

运行Windows窗体应用程序作为服务?

我有一个我写的Windows窗体应用程序,它对收件箱和数据库进行了一些监视.客户告诉我,每次服务器重新启动时都需要运行.让我感到羞耻的是让客户改变了要求.

我在想...有没有办法让Windows Forms应用程序作为服务运行,以便它自动启动?

澄清

我想尝试不再编写任何代码......如果可能的话!

.net windows-services winforms

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

Windows窗体:进度条无响应

我有一个小应用程序来转换几种文件格式,主窗口形式包含几个文本框,按钮等.我有另一个"文档"类,它处理所有的实际转换工作,我的表单基本上迭代所有的文件,并调用适当的Document方法来转换文件.然而,当这种情况发生时,表单会停止响应.我创建了另一个简单的表单,其中包含一个进度条和一个取消按钮,当转换开始向我们(容易被叮叮当当的)用户提供一些反馈时,它会产生.但是,当新表单加载时,所有控件都是白色框,并且它也停止响应.转换完成后,进度条将正常关闭,主窗体将再次响应.

是否有一种简单的方法可以使这两种形式独立,这样即使另一种形式没有反应,进度条也可以运行?

c# winforms

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

将Windows窗体应用程序转换为Asp.net

我问的是你之前用来将ac#windows表单应用程序转换成asp.net的最佳工具?我已经在谷歌上搜索了这个主题并发现了很多工具,但我希望有人根据他的用法推荐最好的工具.

c# asp.net winforms

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

从SqlDataReader命令中选择列值

我有一个包含SQL中两列的表,我想从中提取值.但问题是我不知道如何在C#代码中检索第2列的值.我正在使用SQL Server 2008和VS. 我是否必须在SP中使用OUTPUT参数?如果是这样,我将如何指定此SP?我已经尝试过OUTPUT参数,但是我无法创建OUTPUT参数而没有错误,因为我也试图选择COLUMN_NAME.此查询返回了4列,我只想获得此列数.应该有一个更简单的方法来做到这一点,不是吗?这适用于SQL,但不适用于C#.

这是我的SP:

CREATE PROCEDURE [dbo].[getColumnNames]
    @TableName varchar(25) 
AS
    SELECT name 'COLUMN_NAME', (
         SELECT COUNT(ID)
         FROM syscolumns WHERE id = (
             SELECT id
             FROM sysobjects
             WHERE name= @TableName)) 'ROW_COUNT'
    FROM syscolumns
    WHERE id = (SELECT id FROM sysobjects WHERE name= @TableName)
    RETURN
Run Code Online (Sandbox Code Playgroud)

这是我的C#代码调用此SP:

public static SqlDataReader DisplayTableColumns(string tt)
{
    SqlDataReader dr = null;
    string TableName = tt;
    string connString = "Data Source=.;AttachDbFilename=\"C:\\Program Files\\Microsoft SQL Server\\...";
    string errorMsg;

    try
    {
        SqlConnection conn2 = new SqlConnection(connString);
        SqlCommand cmd = conn2.CreateCommand(); …
Run Code Online (Sandbox Code Playgroud)

c# sql sqldatareader

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

奇怪的boo语言语法

我在Boo语言指南中遇到了一个奇怪的语法:

setter = { value | a = value }
Run Code Online (Sandbox Code Playgroud)

什么是| 运营商意味着

closures boo

3
推荐指数
1
解决办法
1079
查看次数

逻辑及其对Collections.Generic和继承的应用

一切都从对象继承.这是继承的基础.一切都可以隐式地构建继承树,即.

object me = new Person();
Run Code Online (Sandbox Code Playgroud)

因此,遵循这个逻辑结论,一群人也将成为一组对象:

List<Person> people = new List<Person>();
people.Add(me);
people.Add(you);
List<object> things = people; // Ooops.
Run Code Online (Sandbox Code Playgroud)

除了,这不起作用,设计.NET的人要么忽略了这个,要么就是有原因,我不确定是哪个.至少有一次我遇到了一个有用的情况,但我不得不最后使用一个讨厌的黑客(子类化List只是为了实现一个强制转换操作符).

问题是:这种行为有原因吗?是否有更简单的解决方案来获得所需的行为?

为了记录,我相信我想要这种行为的情况是一个通用的打印功能,它通过调用ToString()并很好地格式化字符串来显示对象列表.

.net collections inheritance

3
推荐指数
1
解决办法
613
查看次数

如何使用参数创建链接按钮

HTML:

<asp:LinkButton ID="lnk_productImage" runat="server" Text="select"
   OnClick="viewProductImage('<%#DataBinder.Eval(Container.DataItem,"Id") %>')"
   >
</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

代码隐藏:

protected void viewProductImage(object sender, EventArgs e, int id)
{ 
    //Load Product Image
}
Run Code Online (Sandbox Code Playgroud)

html c# parameters onclick linkbutton

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

Citrix上的WPF应用程序

我正在尝试在Citrix服务器上使用WPF应用程序,并使用按钮和文本框创建了一个非常简单的窗口.运行应用程序时,会显示窗口顶部的应用程序名称.是不是可以在Citrix上使用WPF,还是我们的Citrix服务器太旧了?

wpf citrix

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

ListBox中的TextBox,Button和ListBox

我有一个列表框,每个列表项中都有一堆控制.

<ListBox x:Name="projectList" IsSynchronizedWithCurrentItem="True">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding Name}" />
                <ListBox x:Name="taskList" ItemsSource="{Binding Tasks}">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <TextBlock Text="{Binding Name}" />
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
                <TextBox x:Name="textBoxTask" />
                <Button
                    x:Name="ButtonAddNewTask"
                    Content="Test"
                    CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DataContext}"
                    Click="ButtonAddNewTask_Click"
                    />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

当我单击列表框中的按钮时,我想将新项目添加到列表框中的列表框中.我走到这一步.所以我的问题是如何获取文本框以及如何更新列表框?

这是我的点击事件

private void ButtonAddNewTask_Click(object sender, RoutedEventArgs e)
{
    Button button = (Button)sender;
    Project proj = button.DataContext as Project;
    if(proj.Tasks == null)
        proj.Tasks = new List<Task>();

    proj.Tasks.Add(new Task("Added Task"));
}
Run Code Online (Sandbox Code Playgroud)

感谢名单

wpf listbox

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

增加文本框名称中的数字

public void test()
    {
        List<int> list = new List<int>();
        list.Add(1);
        list.Add(2);
        list.Add(3);
        for (int i = 1; i <= list.Count; i++)
        {

            textBx.Text = list[i].ToString();
            // I want it to be textBx1.Text = list[1].ToString();
                               textBx2.Text = list[2].ToString();
                               textBx3.Text = list[3].Tostring();
                               etc.
              // I can't create textbox dynamically as I need the text box to be placed in specific places in the form . How do I do it the best way? 


        }


    }
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
2891
查看次数

无法在C#中停止定时器

我在Windows窗体(C#3.0,.net 3.5 SP1,VS2008 SP1,Vista)上有一个计时器,即使在它被停止后似乎也能工作.代码是:

using System;
using System.Windows.Forms;

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

        private DateTime deadline;

        private void StartTimer()
        {
            deadline = DateTime.Now.AddSeconds(4);
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            int secondsRemaining = (deadline - DateTime.Now).Seconds;

            if (secondsRemaining <= 0)
            {
                timer1.Stop();
                timer1.Enabled = false;
                MessageBox.Show("too slow...");
            }
            else
            {
                label1.Text = "Remaining: " + secondsRemaining.ToString() + (secondsRemaining > 1 ? " seconds" : " second");
            } …
Run Code Online (Sandbox Code Playgroud)

.net c# timer winforms

0
推荐指数
1
解决办法
2796
查看次数