|
In the event the datagridview Paint have done the following:
private void dtgData_Paint(object sender, PaintEventArgs e)
{ Graphics g = e.Graphics;
Rectangle rect = new Rectangle(0, 0, Width, Height);
LinearGradientBrush b = new LinearGradientBrush(rect, Color.White, Color.DarkBlue, LinearGradientMode.Vertical);
g.FillRectangle(b, rect);
}
Before creating the gradient showed data from the cube to my database
modified 20-May-12 21:38pm.
|
|
|
|
|
the DGV needs to paint itself through its Paint event; if it does not run at all, or runs before your Paint handler runs, then all it will show is your stuff, and not its native capabilities. Either switch the order of the paint handlers, or better yet override OnPaint() and have its handler call base.OnPaint() when the background is done. The details depend on your current setup.
|
|
|
|
|
Sorry I am very new to c# I could explain with an example, thank you very much for your help.
|
|
|
|
|
In order for this to work, you need to have your own DGV class derived from DataGridView, and implement an OnPaint method, which calls base.OnPaint() AFTER you are done with the background.
Here[^] is the relevant MSDN page; the important sentence is
When creating a new custom control or an inherited control with a different visual appearance, you must provide code to render the control by overriding the OnPaint method. For more information, see Overriding the OnPaint Method and Custom Control Painting and Rendering.
and it contains links to more explanation.
IMO you really should study a book on C# and WinForms before trying all this... And then use Google to locate the detailed documentation and some examples.
|
|
|
|
|
Thank you will investigate much to resolve this and like to share it with others
|
|
|
|
|
hi I am going to apply fuzzy to C #
calculate the linear and triangular membership functions.
http://cdn-u.kaskus.us/72/d162lwot.png[^]
http://cdn-u.kaskus.us/72/7qhhkzn8.png[^]
download an application http://www.4shared.com/rar/wJEK9W45/fuzzy.html[^]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
namespace LATIHAN
{
public partial class fuzzy : DevExpress.XtraEditors.XtraForm
{
Double MU, PA, TU;
public fuzzy()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Double vskor = Convert.ToDouble(textBox1.Text);
if (25 <= vskor && vskor <= 45)
{
MU = (45 - vskor) / (45 - 25);
}
else if( vskor < 25)
{
MU = 1;
}
else
{
MU = 0;
}
if (vskor <= 35 || vskor >= 55)
{
PA = 0;
}
else if (35 <= vskor && vskor <= 45)
{
PA = (vskor - 35) / (45 - 35);
}
else if (45 <= vskor && vskor <= 55)
{
PA = (55 - vskor) / (55 - 45);
}
if (45 <= vskor && vskor <= 65)
{
TU = (vskor - 45) / (65 - 45);
}
else if (vskor <= 45)
{
TU = 0;
}
else
TU = 1;
label1.Text = "MUDA (" + MU + ")";
label2.Text = "PAROBAYA (" + PA + ")";
label3.Text = "TUA (" + TU + ")";
if (TU > MU && TU > PA )
{
hasil.Text = " Ternyata Ahaha anda TUA .. tuaaa tuaaaa :D (" + TU + ")";
}
if (MU > PA && MU > TU)
{
hasil.Text = "Anda termasuk MUDA jadilah anak yang berguna (" + MU + ")";
}
if (PA > MU && PA > TU)
{
hasil.Text = "Anda sudah PAROBAYA jangan salah langkah nanti bisa jadi BAYA (" + PA + ")";
}
}
private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
RamGec_About_Box1 m = new RamGec_About_Box1();
m.Show();
}
}
}
C# fuzzy
|
|
|
|
|
If you're trying to post this for the world to use, write an article on it, don't post it to a forum.
If you're trying to ask a question, you didn't.
|
|
|
|
|
Is there a question you want answered ? Why are you posting this here: what kind of response do you expect to get ?
best, Bill
"Humans are amphibians ... half spirit and half animal ... as spirits they belong to the eternal world, but as animals they inhabit time. This means that while their spirit can be directed to an eternal object, their bodies, passions, and imaginations are in continual change, for to be in time, means to change. Their nearest approach to constancy, therefore, is undulation: the repeated return to a level from which they repeatedly fall back, a series of troughs and peaks.” C.S. Lewis
|
|
|
|
|
I have a client application, which uses a unmanaged dll for communicating with a server.
All network-related operations are perormed inside the unmanaged dll.
After a number of operations with the server, the client is running out of TCP ports.
If we check the state of netwotk using 'netstat -an', we get the following result:
...
TCP 192.168.11.55:56048 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56049 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56050 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56051 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56052 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56053 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56054 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56055 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56056 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56057 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56058 192.168.10.27:5000 FIN_WAIT_2
TCP 192.168.11.55:56059 192.168.10.28:5000 FIN_WAIT_2
TCP 192.168.11.55:56060 192.168.10.27:5000 FIN_WAIT_2
...
The ports are released only after the client is closed.
If I run the VS project in Debug Mode, it never runs out the ports.
But, while running in Release mode, it is happening.
How to release or kill those ports which are in FIN_WAIT_2 state?
|
|
|
|
|
Does Tom Shelton's reply on this[^] page help?
/ravi
|
|
|
|
|
Yes. I know that the server is not sending ACK to the client signaling that the socket is closed.
The problem is I don't have access neither to server nor client code.
The only solution I am seeing here is releasing the ports by force.
In POSIX, there is a system call (linger?) to close ports.
I am looking something like this for Windows, if it exists.
|
|
|
|
|
LingerOption [^] may help. But methinks you'll need access to the client code (at least).
/ravi
|
|
|
|
|
Hi all !
I want to save the DataGrid Cell Value into an excel file :
...
try
{
mySheetInputData = (Microsoft.Office.Interop.Excel.Worksheet)ExWorkBookInputData.Sheets["Sheet1"];
mySheetInputData = (Microsoft.Office.Interop.Excel.Worksheet)ExWorkBookInputData.ActiveSheet;
mySheetInputData.Name = "mySheet";
...
for (int i = 0; i < RowCount; i++)
{
for (int j = 0; j < ColumnCount; j++)
{
mySheet.Cells[i + 2, j + 2] = dgv.Rows[i].Cells[j].Value;
if (dgv.Rows[i].Cells[j].Value == null || dgvRows[i].Cells[j].Value.Equals(""))
mySheet.Cells[i + 2, j + 2] = 0.0;
}
}
dgv.update();
....
when I save this to an excel file , last cell i fill , show the value of "0.0" , but when I resize or minimize the application or change the cursor in the next cell that fill before , there is no problem to show all value i put to DataGrid Cell.
thanks a lot !
modified 19-May-12 3:02am.
|
|
|
|
|
This is not a good question - we cannot work out from that little what you are trying to do.
Remember that we can't see your screen, access your HDD, or read your mind.
Edit your question and provide better information - perhaps a simple example of what you have before, what you expect, and what you get would help.
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
This is happening because a cell is still in edit mode when it's Value property is read. The new value does not become available until it has been committed and edit mode ended.
As you found out this can be done by moving the focus to another cell or control, but it can also be done programmatically by calling the DataGridView's EndEdit method.
Inserting the following line before you start reading values from the grid should fix the problem.
dgv.EndEdit();
Alan.
|
|
|
|
|
thanks , it solve the problem !
|
|
|
|
|
So I create a new project, planning to use a Grid for layout. According to VS2010 Help, this is found in System.Windows.Controls. I typed the appropriate using clause and added a Grid element to my Form, but that generated an error telling me that no such namespace exists. So I try to add a reference to the project, but there still is no such thing as a namespace called System.Windows.Controls. It's fully documented in Help, of course, and full of useful things, but there is no such thing, if I believe Visual Studio. The help article also mentions that this item is located in the Assembly, PresentationFramework (in PresentationFramework.dll). So I used the Browse tab to search for this dll and add it, too. Found it, but the IDE still claims there is no such thing as a Grid class.
After several hours of screwing with this nonsense, adding and removing using clauses willy nilly, I quit typing it manually and let the Intellisense display its wares. Lo and Behold, there was a Controls selection available under System.Windows, if I slowed down enough to wait for it to display. Typing it directly, exactly as the automated feature typed it, won't work. Is it any wonder that I never finish an app?
The wonder is that I keep trying...
Will Rogers never met me.
|
|
|
|
|
It's just you!
In practice if you look at the help page:
Namespace: System.Windows.Controls
Assembly: PresentationFramework (in PresentationFramework.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation It gives the problem away: "Assembly: PresentationFramework" which means it is part of WPF, not WinForms. If you create a WinForms app, then you can't use the Grid Control, as it requires the WPF framework which is XML based.
Depending on what you are trying to do, you might want to use a TableLayoutPanel or Splitter panels instead!
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
That's not quite true. You can use the Grid layout in WinForms as you can host WPF content in a WinForm. Whether you'd want to is a different matter.
|
|
|
|
|
I didn't know that! Any links to how? (Not that I want to do it, it would just be for reference)
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
You just need to use an ElementHost object. It's under the WPF tab.
|
|
|
|
|
cheers!
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
Take a look at this[^]
I have added WPF stuff to a winform, just for fun. I don't do it for real programs.
Just because the code works, it doesn't mean that it is good code.
|
|
|
|
|
Background:
My lady loves the game of Keno, specifically Cleopatra Keno. Her birthday is in 4 weeks, and I have 3 weeks relatively free until classes start again. I'd like to make a Windows version of the game for her to play at home for her birthday. Not only would she love it, but it would save me a ton of money if I could get her used to playing at home instead of a casino. The logic of the game is trivial. The player selects 3 to 10 numbers from a field of 80, places a bet, and presses Go to run a game.In Cleopatra Keno, if the run is a winner, and the last number drawn is one selected by the player, the game awards 12 free runs with doubled payouts. Each run draws 20 numbers from the field. The overall payout is only 90.1%, so it's a lousy money maker, but I have to admit that it's fun when a game starts hitting these bonus rounds over and over... it does happen.
So, I've created a Keno tile class as a user control. It has a button overlaid on a UserControl background with a Text member that represents the number of the tile, set in the constructor for each instance. A Tile contains methods to set and reset states of Selected by the player, Hit during game play, Last hit in a run, et cetera. These are all self-contained functions to control the colors displayed to the user. But how do I lay them out in a rectangular grid, and what's the best way to handle interactions between the game and the user? I think that having the individual tiles raise an event when the user makes a change makes sense, but during the game run, what should control?
The layout question is really the top priority right now. I have to instantiate 80 separate controls and make them display in a grid of 8 rows of 10 columns, and I'm not sure of the most efficient way to accomplish that. I could calculate the XY coordinates for each top left corner and render them that way, but that seems awfully ugly. Is there a better way?
Will Rogers never met me.
|
|
|
|
|
Sorry mate, but that sounds a horrible way to layout the interface. If I were doing this, I would consider drawing the grid out in it's entirety. I would then have a class which represented a single tile, which would contain a Rectangle that represents the tile location on the screen.
I would have a TileContainer class which was responsible for maintaining the collection of tiles and performing operations such as getting the "hit" tile. As a hint, a simple method would be to just iterate through the tiles performing a Rectangle.Contains to see which rectangle contains the point - there are other optimisations you could perform, but on 80 items, this wouldn't be an expensive operation.
|
|
|
|
|